Refresh tokens have twice the expiration time as bearer tokens.
Redeeming a refresh token obtains a new refresh token and invalidates the previous refresh token.
Add refresh_expiration_multiplier and reissue_refresh_tokens options

These options affect how the refresh token grant operates.
Refresh expiration multiplier will set the expiration
 of the refresh token in units of the access_token expiration time.
For example refresh_expiration_multiplier=2 with expires_in=60
 will have refresh tokens be valid for two minutes,
 with the access_tokens being valid for one minute.

Reissue refresh token will cause a new refresh token to be issued along with
 new access_token, and the old refresh token invalidated, when a refresh token
 is redeemed.

These are optional behaviours and are disabled by default. To enable them:
    oauth_app.add_grant(oauth2.grant.RefreshToken(expires_in=60,       \
                                       refresh_expiration_multiplier=2,\
                                       reissue_refresh_tokens=True))
Fix travis-ci build errors
Testing: Add expires_in parameter to TokenGenerator Mock()
Add per-grant-type token expiration durations
Modify tests and plumbing
Add test for refresh token reissue case.
Memcache store uses correct lookup key, and deletes access token on refresh reissue
Removed two debug statements
Merge 'master' into jswitzer-master
Fixed one test using old params of a class
Updated CHANGELOG with the latest changes
Read headers of a Request
Added python-basicauth as dependency
Read credentials of a client using HTTP Basic Auth
Parsing auth header in a valid way for both python 2 and 3
Removed basicauth dependency
Authenticate a client via HTTP auth header
Specify which source to be used by the client authenticator
Added docs for the client_authenticator module
Improved test coverage of client_authenticator.request_body
Fixed a test checking for a string instead of a more reliable dict