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
Refactoring of OAuth responses and custom resource owner options

Removed `AdvancedPathUserResponse` & `AdvancedUserResponseInterface`
and merged theirs code into `PathUserResponse` & `UserResponseInterface`.

Now `PathUserResponse` contains by default all common paths keys.

`PathUserResponse#getPath()` & `PathUserResponse#getValueForPath()` no
longer throw an exception when path or value not exists, now they simply
return `null` instead.

Add ability to set custom options for particular resource owners
in by defining them in `config.yml`:

hwi_oauth:
    resource_owners:
        foursquare:
            type:           foursquare
            client_id:      <client_id>
            client_secret:  <client_secret>
            options:
                version:    20121212
Add notes to CHANGELOG file
Merge remote-tracking branch 'regularjack/offline-access'
merged PRs 154 and 189, waiting for upstream to accept into their master