Autotest: Add ADBHost and simple server side test.

This change adds a ADBHost, which represents a machine running ADB
with an android device connected. ADBHost may be either the local
machine or a repote IP addressable host with adb installed. In
either setup, all the ADB interactions can be done via USB or TCP/IP
though USB is more stable and the perferred interaction.

So far ADBHost only allows for server-side testing of the android
device. Included is a simple reboot test. Note interacting with the
device over TCP/IP after rebooting multiple times can run into
some flake. This should be resolved with verify/repair methods to
ensure/get us to a good state.

Also refactored ignore_timeout all the way into base_utils.

BUG=chromium:294308
TEST=$ ./autoserv -s site_tests/adb_Reboot/control -m localhost
--disable_sysinfo --no_collect_crashinfo  Ran with localhost, remote
beaglebone running as an ADB Host and both over usb/tcpip. Tests
for tcp_ip used --args="device_hostname=172.22.50.232"
Also works with test_that --board=daisy [ip] adb_Reboot --fast

Change-Id: I504492ff3fb67c97d37b5e4376b7257ed1dd4ca5
Reviewed-on: https://chromium-review.googlesource.com/169884
Tested-by: Simran Basi <sbasi@chromium.org>
Reviewed-by: Fang Deng <fdeng@chromium.org>
Reviewed-by: Alex Miller <milleral@chromium.org>
Reviewed-by: Simran Basi <sbasi@chromium.org>
Commit-Queue: Simran Basi <sbasi@chromium.org>
7 files changed