Bug 1078520 - python client

Implement a python client.  Note to reviewers, there were a couple fairly substantial changes to the way the module in the latest commits.  It's probably best to only really look at the most recent code.
That comment is poorly worded and left over from a time when I *did* instantiate module level clients for each API client.  Python doesn't have a global scope, did you mean module scope?  I used to create a single instance in the module scope, but that was a bad idea and changed that in b3d310f.

Comment fixed with 08a8f3dd5d83c81f0a1a9944fbb3e664f3d43769