Borrow ssh.py from pygerrit

Pygerrit at github.com/sonyxperiadev/pygerrit.git neatly wraps all
the standard setup and teardown of the paramiko connected, saving
me much time and effort.

Imoprt the original version, unchanged, before hacking on it.
Customize ssh.py for my own use

- Add the authors of pygerrit to AUTHORS documentation
- Add the relevant license information for ssh.py to LICENSE
- Acknowledge pygerrit's authors in otherimplementations document
- Exclude the file from test coverage

Changes to ssh.py

- Remove the duplicated extract_version logic and call to fetch the
  version on an attempt to connect as I already have this in
  my own Site class.
- Renamed some classes and exceptions as this can actually be fairly
  independent of Gerrit.
- Made the connected attribute 'private' in the client to hide the
  fact that it is implemented as an Event()
- Added a readonly 'connected' property to expose the private
  attribute.
- Added a disconnect() method to the client.
Add paramiko as a requirement

Note that I am currently using a development branch from Scott
Maxwell's fork. This provides python 3 compatibility.

This is a temporary situation while the related pull request is
being merged into the main Paramiko repo.
Modify setuppy to include subpackages

Use find_packages so that modules in the borrowed directory are
found during packaging.
Switch to using paramiko

This is the big commit. It would have been nice to break it up
into smaller commits, but in reality there is nothing here that
can go in standalone.

Does not currenlty pass tests (they need to be updated)
Update unit tests to work with paramiko

Significant rewrites as some of the internals which I was mocking
and/or monkeypatching have changed markedly.

The biggest impact was how I simulated specific return values from
the SSH connection. Specifically, the connected_site fixture needed
some heavy lifting, which thankfully did not propogate into all the
tests that use it.