Enable run of tests on devices and emulators

This CL updates the DexVm enum to add add an information
about the kind of runtime used to run the tests, whether
it's a host version of the runtime or a target one
(device or emulator).
It adds also the DeviceRunner class which drives the target
device for the tests.

Change-Id: I10666951f083a4f1da2efe3e9d368803a223a1b2
Bug:
diff --git a/tools/create_art_tests.py b/tools/create_art_tests.py
index 7cf53b9..600c140 100755
--- a/tools/create_art_tests.py
+++ b/tools/create_art_tests.py
@@ -3,14 +3,16 @@
 # for details. All rights reserved. Use of this source code is governed by a
 # BSD-style license that can be found in the LICENSE file.
 
+import os
 from os import makedirs, listdir
 from os.path import join, exists, isdir
 from string import Template, upper
 from sys import exit
 from shutil import rmtree
 
-OUTPUT_DIR = "build/generated/test/java/com/android/tools/r8/art"
-TEST_DIR = "tests/2017-07-27/art"
+OUTPUT_DIR = os.path.join('build', 'generated', 'test', 'java', 'com',
+                          'android', 'tools', 'r8', 'art')
+TEST_DIR = os.path.join('tests', '2017-07-27', 'art')
 TOOLCHAINS = ["dx", "jack", "none"]
 TOOLS = ["r8", "d8"]
 TEMPLATE = Template(