These scripts help generate the libcore TEST_MAPPING smoke tests, i.e. a set of
tests to run on every change, chosen to run as many as possible in less than
some time limit.

The process is as follows.
1. Do `source build/envsetup.sh` and `lunch <whatever>` as normal.
2. Run the CtsLibcoreTestCases tests to generate logs to extract timings from.
   This can be done with `atest CtsLibcoreTestCases` as normal. Make sure to use
   an appropriate device (virtual or physical).
3. Do that two more times. We'll use best-of-three timings, since sometimes a
   test takes an unusual amount of time (perhaps because of GC pause or other
   jank) and it should not be excluded for that.
4. Run the save_logs.py script to copy the logs from out/ to libcore/smoketest.
   (Empty that directory if it exists already). This is interactive and allows
   you to pick the runs you want. (If you prefer, you can run this after each
   run, rather than once after all three runs.)
5. Run the gen_smoke_tests.py script to generate libcore/TEST_MAPPING.
6. Check stdout from the script looks okay (not too many warnings, sensible
   numbers, etc.).
7. Check the generated TEST_MAPPING looks okay.
8. Do e.g. `time atest --test-mapping libcore` to check it runs okay.
9. Delete libcore/smoketest/ once you're happy.
10. Submit the new TEST_MAPPING.

The scripts take no options. There are some constants at the start you can
adjust. (These could be converted to command-line options if convenient.)

See comments in the scripts for more on how they work.

At time of writing, with the current configuration, this generates a sensible
number of classes to exclude, so the TEST_MAPPING looks reasonable. If this list
becomes too long, we'll have to find a way to simplify it, by rolling up to a
higher granularity. Given the way that atest et al are configured, that will
probably mean excluding more things.

TODO(peteg): What about PTS?
