Shifting API functions to RESTful HTTP methods

Added method overrides in POST function and beginning of study-creation logic. Moved study-update logic to the PUT function and added a stub for DELETE.
bug fixes from my refactoring of the nexson_validator that were not caught by the tests. Need more tests...
Adding simple CORS support (no tweaks to web2py)

This should respond to CORS "preflight" requests, allowing any domain to use the OTOL API. If we have problems with this, we might need to patch web2py/gluon/globals.py to allow the 'OPTIONS' request_method.
Merge pull request #30 from OpenTreeOfLife/restful-api-methods

Shifting API functions to RESTful HTTP methods
untested code for conversion of XML to a dictionary in get_ot_study_info_from_treebase_nexml and get_ot_study_info_from_nexml
DeprecatedMetaPropertyWarning added
github_client requires simplejson
tests of getting a study and of trying to put an empty file
refactoring normalize script to make it easier to mimic from within the api call
sketching out how the validation could work with PUT methods. This impl does not correctly commit the raw content and then return while the validation commit occurs in the background
bug fix of test output when non-nexson is presented
bug fix on stringifying rich NexSON objects and getting auth_token from GITHUB_AUTH_TOKEN in env of client test scripts
env var for testing code switched to GITHUB_OAUTH_TOKEN to agree with README
bug fix from unintentional repitition of key
Merge remote-tracking branch 'origin/validate-on-write'
Merge branch 'master' into local

Conflicts:
	controllers/default.py
	requirements.txt
Make GitData.push() be more explicit about which branch to push