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.
Deploying new python packages in releng infra circa 2011/2012 was quite a huge undertaking given the number of weird and oddball places.  It could take weeks to deploy a new python package everywhere needed, but adding a line like I have above would be less than a day to deploy.

I'm happy to have HAWK_ALGORITHM support, I think it's easier to have it and not use it than the alternative.  I write a patch for this tomorrow

As for caching, I think caching for each retry is valid to do (as python is sync), but I think it's a bad idea to cache between sets of retries given that `self.options` is mutable and could change between invocations of things which need a hawkExt.

I implemented caching in c151259c50326b4b8cfd1c60d98f721eeed89292