Add support for OAuth2 refresh tokens

According to the [OAuth standard](http://tools.ietf.org/html/draft-ietf-oauth-v2-10#section-4.2),
the Access Token response contains the following fields:

* access_token [REQUIRED]. The access token issued by the authorization server.
* expires_in [OPTIONAL]. The duration in seconds of the access token lifetime.
* refresh_token [OPTIONAL]. The refresh token used to obtain new access tokens.

Note that the `refresh_token` is only returned the first time the user grants access.

This commit adds the `refresh_token` and `expires_in` fields to the `OAuthToken`
class and defines a new method on the `GenericOAuth2ResourceOwner` called
`refreshAccessToken` that takes the `refresh_token` as parameter and returns
a new `access_token` along with it's `expires_in` value.

Additionally, a new `access_type` configuration option is defined. This option is
passed to the `getAuthorizationUrl` call by the `GoogleResourceOwner` to demand for
offline access. For more information see [Google's OAUth documentation](https://developers.google.com/accounts/docs/OAuth2WebServer#offline).

Note that since `access_type` is not standard OAuth2, it's not
set by the `GenericOAuth2ResourceOwner` but by `GoogleResourceOwner`. In the future,
other resource owners may pass this option too if need be. Setting
`access_type=offline` for a `google` resource will return a `refresh_token` along
with the `access_token`.
Improve PHPDoc and add BC break to CHANGELOG.md
Use setters for refreshToken and expiresIn in OAuthToken
Remove PHPUnit 3.7 check from tests
Improve code
Rename doGetAccessTokenRequest to doGetTokenRequest so that it can be used to retrieve the refresh token
Cleanup code to use latest features, and some shortcuts
Merge pull request #258 from stloyd/feature/refresh_token

Add support for OAuth2 refresh tokens