Break out TemporaryJobsTest into separate classes

We had a bunch of test classes stuffed into TemporaryJobsTest. Instead,
refactor the common functionality into TemporaryJobsTestBase and put each
class into its own file.

This also helps performance, since each separate test class can be run on
its own thread with forked execution.
Lower timeouts in tests: 10 minutes -> 200 seconds

Build systems like CircleCI and TravisCI tend to get upset when we don't
print any output for 3+ minutes. Also, any operation not completing for
that long is usually a sign that something went wrong.

Instead of just waiting until the build system times out the build, lower
our timeouts to under 3 minutes. That way we'll fail fast and see hwere
things are too slow or going wrong.
Listen for SIGINT/SIGTERM in test containers

The containers we start for a lot of our tests just run a simple loop:

  while :; do sleep 1; done

That loop doesn't care about SIGTERM, so all `docker stop` operations would
take 120 seconds (the timeout before we SIGKILL the container).

Instead, change to this loop, which respects SIGTERM and exits nicely:

  trap 'exit 0' SIGINT SIGTERM; while :; do sleep 1; done

This speeds up all tests that explicitly wait for a container to stop.
CircleCI: Use default JUnit parallelism

CircleCI should be able to handle parallelism.
CircleCI: Change logging level from WARN to ERROR

The WARN level just spewed way too much stuff to be useful.
Optimize & reorder test imports after refactoring
Merge pull request #272 from spotify/rohan/fix-tests

Refactoring & performance improvements for tests
Bulk Job Status fetching

This turns an operation making N+1 requests to one
that makes only 2, which should speed things up significantly as
the number of hosts increases.