reimplement ssh proxying using ssh transport

Removes fragile, bulky code and provides a more robust solution,
as well as negating the depedency on a local ssh program.

Coincident updates:
- renames keyword argument 'proxy' to 'gateway' and updates
  close() method to handle the closure of that connection as well
- renames underlying RemoteShell client to _client attribute
    - uses this attribute to access methods

Change-Id: Ie1ce9f19fbe5bb4341fb6721e3069c1d267be95f
Implements: blueprint reimplement-ssh-proxy
ssh tunnels, windows support, simplify ssh proxying

Change-Id: Ib8646519fb9776db6667206269ae208c63a86a77
wrap underlying client methods with RemoteShell Methods

Change-Id: I28942ec52f63be8a13a0afa996af02d293feb598
use RemoteClient methods and add windows commands

Change-Id: I0bbcb4d81de657b4d2efad23751c3337b984e1ae
changing remote_execute to treat command as PoSh command by default
moving code to find prompt pattern into _get_output method
improving robustness of windows remote client by implementing logic to detect failures of the subprocess and using retry/reconnect logic
added more methods to mirror functionality of satori/ssh
removed install_ohai and remove_ohai which are going to be moved to satori/sysinfo/ohai_solo
adding docstrings
changing second loop in _get_output to actually account for the prompt_expected parameter
adding parameter wait to _get_output to change the time spent waiting in each loop
fix keyword argument business and close()

Change-Id: Ie2e8b1b5322e32b2ecb92883e2419fad9c42e0d6
adds close()

Change-Id: I262b0ed3f958bdaf3fe7755bbbd70e25ae7941d6
unset rubyish things before ohai-soloing

Change-Id: I6efcc6375b66653b79209ee8809026bd9da2a573
Don't Fail on Platform Detection

Change-Id: I82102269f39c5d69bb3258a491efa97896f5fcf3
Cleanup

Change-Id: Ib86eb93dc9426283195c7cbd47beecbe254a6a56
flexible fn signatures for remote_execute

Change-Id: I46716920ca5507ef83c2f8660df6ca819da0d402
disallow port or username from being None

Change-Id: Id81f0d0824698bace4bd0fca8148ecef57c67223
add impacket to reqs

Change-Id: Iac8fcac7ff0d5ed33106a775ce09e2bc91b238f8