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.
This is a courtesy reminder... But it's a very useful reminder...
It's nice to catch errors early on.