Add support for ls-groups command

Changes include new concrete SiteCmd implementation, documentation
and unit-tests.
Add support for ban-commit command

Includes documentation, unit tests, and versioned implementation.
Add support for the ls-members command
Refactor the options support for conrete classes

The concrete commands implemented so far used identical code
in their initializers and execute_on methods. This commit
refactors that code and moves it into the abstract SiteCommand
class, thus simplifying all the command implementations.
Clean up some 2to3 issues

Generic cleanup from running 2to3 after all the chages and
additions. Mostly they relate to using 'long' as a variable
name (which 2to3 insists on converting to 'int')
Allow caller to provide a key file for site

As well as specifying the port and username, a caller can now
provide an optional key-file name to use. This will override the
identityfile value found in the SSH config file.

Also, added logging to the Site object wherever it raises an
exception so that debug information is available even if the client
catches the exceptions.
Specify ImportError on ctach clause

Catching all exceptions on a failed import is a "bad thing".

The python2v3 import check for urlparse/urllib.parse now explicitly
catches just ImportError
Move version information to a separate file

Now I see why the version number was often hard-coded into setup.py.

Importing the package to get it also meant that all of the
dependencies had to be installed simply to build the package or docs.
Testing with readthedocs, pypi,and Jenkins has educated me.

However, I still don't like having this information (version, author,
and email) hard coded at multiple places. So I've move it all to a
VERSION.py in the repository root, and modified all the setup and
documentation configuration files to reference that.

We'll see how long it is before it becomes clear this is also a
mistake. Everyone else can't be wrong.
Tweaks for PyPi

Testing on PyPi showed problems with the setup and RST files
Final preparation for first release

- Some quick typo fixes to documentation
- Set the version number
Merge branch 'release/0.1.0'