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 can't control the capitalization of the apis.js file and I think changing the case of the names is a bad idea, but you're right that it's just an out of date apis.json file.

I have a makefile target that automatically downloads, parses and dumps a new JSON file when needed.  How else are we going to get the API.json file data?  Unless we landed the python client into the JS client library, or split the API reference into its own repository and have both clients import this same reference.  While the API reference is stored in js, not json, any attempt to dynamically (with or without caching) fetch the API reference will require Node to be installed on a machine to use the python client....

I just fixed a minor issue with the Makefile which caused the apis.json file to be out of date, any time you want to update it to the latest of the JS client's master branch just run 'make apis.json'

Fixed and updated with 872e3c84de508e7da3b12d39329132f86deadb5f