Fix oauth errors to match the oauth spec

* Should return error and error_description properties
* Add OAuth2_Exception class to proxy errors from OAuth2_Response
* Update tests to expect 'error' not 'errors' property
* Check error message in tests
* Update submodule to fix some issues
Only return JSON errors for API