Re-factored the provider independent aspects out of the oauth.google module into a new oauth module