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.
Do we validate that we don't issue credentials that last longer than 31 days on the server?  If so, we don't really need this check here at all and if we don't, this is basically a courtesy reminder ;)