[autotest] RDB refactor I

Initial refactor for the rdb, implementes 1 in this schematic:
https://x20web.corp.google.com/~beeps/rdb_v1_midway.jpg

Also achieves the following:
- Don't process an hqe more than once, after having assigned a host to it.
- Don't assign a host to a queued, aborted hqe.
- Drop the metahost concept.
- Stop using labelmetahostscheduler to find hosts for non-metahost jobs.
- Include a database migration script for jobs that were still queued during
  the scheduler restart, since they will now need a meta_host dependency.

This cl also doesn't support the schedulers ability to:
- Schedule an atomic group
 * Consequently, also the ability to block a host even when the hqe using it is
   no longer active.
- Schedule a metahost differently from a non-metahost
 * Both metahosts and non-metahosts are just labels now
 * Jobs which are already assigned hosts are still give precedence, though
- Schedule based on only_if_needed.

And fixes the unittests appropriately.

TEST=Ran suites, unittests. Restarted scheduler after applying these changes
     and tested migration. Ran suite scheduler.
BUG=chromium:314082,chromium:314219,chromium:313680,chromium:315824,chromium:312333
DEPLOY=scheduler, migrate

Change-Id: I70c3c3c740e51581db88fe3ce5879c53d6e6511e
Reviewed-on: https://chromium-review.googlesource.com/175957
Reviewed-by: Alex Miller <milleral@chromium.org>
Commit-Queue: Prashanth B <beeps@chromium.org>
Tested-by: Prashanth B <beeps@chromium.org>
diff --git a/utils/unittest_suite.py b/utils/unittest_suite.py
index e1552bf..97f4612 100755
--- a/utils/unittest_suite.py
+++ b/utils/unittest_suite.py
@@ -89,6 +89,7 @@
     'chaos_base_test.py',
     'chaos_interop_test.py',
     'monitor_db_functional_test.py',
+    'atomic_group_unittests.py',
     # crbug.com/251395
     'dev_server_test.py',
     'full_release_test.py',