[autotest] Refactor SiteHost, AbstractSSHHost, SSHHost hierarchy

This CL refactors the host classes inheriting hierarchy.
Previously, we have SiteHost as a parent class of AbstractSSHost.
This makes AbstractSSHHost/SSHHost chromeos-specific.
In the new hierarchy, SiteHost is made as a subclass of AbstractSSHHost.
This allows other types of host, such as ServoHost,
easily inherits from AbstractSSHHost/SSHHost, without unnecessarily
inheriting chromeos specific methods from SiteHost.

make_ssh_command is put inside host classes, which allows
each subclass of AbstractSSHHost to easily
override it with its own settings.

SiteHost are mixed with SSHHost or ParamikoHost in create_host.

For a thorough discussion about the refactoring design,
take a look at the design doc mentioned in crbug.com/265998.

CQ-DEPEND=CL:66136
BUG=chromium:265998
TEST=dummy and bvt suite pass locally; repair/verify jobs pass; vmtest
in a tryjob pass.
DEPLOY=scheduler

Change-Id: I03a63a3db2f3cb0eaa50884c53fe3d3f8bb779ed
Reviewed-on: https://gerrit.chromium.org/gerrit/64331
Reviewed-by: Fang Deng <fdeng@chromium.org>
Tested-by: Fang Deng <fdeng@chromium.org>
Commit-Queue: Fang Deng <fdeng@chromium.org>
4 files changed