autotest: Create RpcServerTracker for Host objects.

Create a generic RpcServerTracker which can be used by any host object
to start and manage RPC server connections. The RPCServerTracker uses
the associated host object to start the required XML/JSON RPC server on the
DUT and forwards the port from the AutoTest Server to Brillo/Cros DUT.
This CL basically ports over most of the RPC server connection
management code from CrosHost into a separate class so that it can be
reused by AdbHost as well.
AdbHost modifies the |host.rpc_port_forward/disconnect| method to forward the
RPC connection from the AdbHost to Brillo DUT using 'adb forward'.

Related Change:
1. Add a |verbose| flag to the |host.run| method in AdbHost so that we can
reuse the |host.run_background| method already implemented by SshHost.

BUG=brillo:24338381
TEST=Ran network_WiFi_SimpleConnect.wifi_check11g on both dragonboard
and cros DUT.
`test_that $host --board=panther network_WiFi_SimpleConnect.wifi_check11g`

Change-Id: I7e44cbd5897871f01f320cb57377a28491571478
Reviewed-on: https://chromium-review.googlesource.com/307163
Commit-Ready: Roshan Pius <rpius@chromium.org>
Tested-by: Roshan Pius <rpius@chromium.org>
Reviewed-by: Roshan Pius <rpius@chromium.org>
diff --git a/server/cros/interactive_client.py b/server/cros/interactive_client.py
index 03e324d..f242e79 100644
--- a/server/cros/interactive_client.py
+++ b/server/cros/interactive_client.py
@@ -28,7 +28,7 @@
         client_at = autotest.Autotest(self._host)
         client_at.install()
         # Start up the XML-RPC proxy on the client.
-        self._proxy = self._host.xmlrpc_connect(
+        self._proxy = self._host.rpc_server_tracker.xmlrpc_connect(
                 constants.INTERACTIVE_XMLRPC_SERVER_COMMAND,
                 constants.INTERACTIVE_XMLRPC_SERVER_PORT,
                 command_name=