Upgrade Google OAuth client library

I upgrade the Google OAuth library and rewrite a lot of classes to
reflect the changes.  Furthermore, I add unit tests for the rewritten
classes.