[autotest] Establish a common interface for host representation.

This cl has the work needed to ensure that schema changes made on
the server trickled down into the client. If the same changes don't
reflect on the client, creating or saving a client host wrapper for
a given host will fail deterministically on the client side until
modules using the rdb_host are modified to reflect the changes.

1. rdb_hosts: A module containing the host heirarchy needed to
    establish a dependence between the creation of the RDBServerHostWrapper
    (which is serialized and returned to the client, which converts it
    into an RDBClientHostWrapper) and the saving of the RDBClientHostWrapper
    through and rdb update request.
2. rdb_requests: Contains the requests/request managers that were in
    rdb_utils, because I plan to expand them in subsequent cls.
3. rdb_model_extensions: Contains model classes common
    to both server and client that help in establishing
    the common host model interface.
4. rdb integration tests.

TEST=Ran suites, unittests
BUG=chromium: 348176
DEPLOY=scheduler

Change-Id: I0bbab1dd184e505b1130ee73714e45ceb7bf4189
Reviewed-on: https://chromium-review.googlesource.com/191357
Commit-Queue: Prashanth B <beeps@chromium.org>
Tested-by: Prashanth B <beeps@chromium.org>
Reviewed-by: Dan Shi <dshi@chromium.org>
12 files changed