Allow providers to provide the user ID in the access token response
Move OAuth2's access token request into its own method

This is partially to maintain parity between OAuth1 and OAuth2, but it's also necessary to properly support some providers
Add support for Pocket