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.
I think it's actually way more confusing to change the default options and not have those options change in instances created before that default change.  I also think that given Python's lack of const and permanently mutable data types, we're better off computing these bits of data each time we need them.

Changed in cfc6dff to do what you would like.