Add options to control executer threads and CPUs

* D8/R8/L8 gets the --thread-count option (currently not documented) to
  control the threads created in the Java Executor
* run_on_app.py gets the option --cpu-list to pin execution to a fixed
  set of cpus

Change-Id: I288bd8024b3c6b2acd5eebb284447ee5bd3456be
diff --git a/tools/run_on_app.py b/tools/run_on_app.py
index 16db28d..78c8172 100755
--- a/tools/run_on_app.py
+++ b/tools/run_on_app.py
@@ -167,6 +167,9 @@
                     help='Include timing',
                     default=False,
                     action='store_true')
+  result.add_option('--cpu-list',
+                    help='Run under \'taskset\' with these CPUs. See '
+                         'the \'taskset\' -c option for the format')
 
   return result.parse_args(argv)
 
@@ -575,7 +578,8 @@
             stdout=stdout,
             stderr=stderr,
             timeout=options.timeout,
-            quiet=quiet)
+            quiet=quiet,
+            cmd_prefix=['taskset', '-c', options.cpu_list] if options.cpu_list else None)
       if exit_code != 0:
         with open(stderr_path) as stderr:
           stderr_text = stderr.read()