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'm happy to have HAWK_ALGORITHM support, I think it's easier to have it and not use it than the alternative

Great, 

> As for caching, I think caching for each retry is valid to do (as python is sync),

That's fine... :)