[DO NOT MERGE] Initial commit of refactor. Still contains old code.

Not overly related to this pr in general.  But I'm wondering if the scp logic should be moved to host_instance like we did with the ssh logic.  @nhr thoughts?