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.
Ahh, i see it now.  The only problem that I see is that there is a bootstrapping issue to find the API entries we care about.  You fetch the referenceUrl for each API that's defined in the existing apis.js file, but then you never have anything to see if there are new reference Urls.  Or I'm missing something.  Maybe if we had http://references.taskcluster.net/auth/v1/apis.json, which contained a list of the apis we care about and their URL.  It's a little odd that the location to find an API reference is inside an old copy of that reference :)

Let's leave things as they are foe now.  I wonder if we could even add something to the Node client that in effect does `hub clone taskcluster/taskcluster-client.py && make apis.json && git commit -va && git push` when it updates the js client.  That's really icky sounding though.