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.
`api.json` as it exists in the node client is **not** the canonical resource. The references are uploaded to references.taskcluster.net (an S3 bucket) and can be downloaded from there.

There are utilities in the node taskcluster-client for downloading and updating api.json to match references.taskcluster.net. But duplicating this effort is unnecessary, so I think just downloading api.js with node and translating to plain JSON is fine...

It's always going to require some manual work to update the package and `api.json` anyways.