Make setup.py extract version from source

Rather than hard-code the version number in two places, let setup.py
extract the __version__ string from the package's __init__.py.

Now the only places it needs to be updated when preparing a release
is __init_.py and HISTORY.rst. The latter is unfortunate but, as it
is persistent information (part of the release notes), unavoidable.
Reorganize documentation

Reordered some of the rst documentation. Also added more docs to
gerritsite.py, including a full sample usage.
Inrease python 3 compatibility

After switching the virtual environment to use version 3 rather
than version 2, flake8 found new style errors which are now fixed.

Python 3 has a built-in exception with the same name as one declared
in gerritsite.py (ConnectionError). Therefore, the exception is
renamed to SSHConnectionError.

In Python 3, subprocess.check_output() returns a byte-like string
rather than a string which breaks many operations performed on the
output. The response is now decoded as 'utf-8' to convet it to a
string.

Also added some debug logging around site connection.