Feature/oauth2 provider testing

@scotdalton There is still a long way to go before this is merge ready, but I thought I'd put it on your radar.
@hannan Could this line just be `OAuth2::Client.new(oauth_app.uid, oauth_app.secret, site: provider_url)` and then make sure the `provider_url` function returns an instance variable. Maybe we can raise an error there if necessary.