Add OAuth2 authentication support

* Adds OAuth2 authentication support using oauth2 gem
* Supports token refreshing (must be handled by application so new token can be stored by application)
* Updated docs