Added Authorize function to OAuthAuthenticator to handle only token exchange

The OAuthAuthenticator HandlerFunc is meant to be the redirect_url from the access request. I thought it would be useful to provide a function that uses a provided code from a different redirect url and only handles the token exchange. For example, if your OAuth redirect URL is set to your browser-side JS, which subsequently passes the code to your server-side Strava client.
Looks good!  This wasn't in the original version, but could you add something to check for an empty code and return `OAuthInvalidCodeErr`? 

Other than that, please squash your commits so I can merge.