Merge OAuth 2.0 branch into master

Closes #53