Make token generation pluggable

This should fix issue #6 . To change how tokens are generated you can
specify in your app.config a module that should handle the token
generation. The config looks like:

    [
        {oauth2, [
            {token_generation, YOUR_TOKEN_GENERATOR}
        ]}
    ].

The default token generator is called `oauth2_token`. To implement your
own you should create your own module exporting one function
`generate/0`.
Separated scope verification in oauth2_backend:verify_client_scope/2 and
oauth2:verify_user_scope/2 (Issue #12)
Merge branch 'bt-pluggable-access_token'

Make it possible to plug in different token generation-backends

To change how tokens are generated you can
specify in your app.config a module that should handle the token
generation. The config looks like:

    [
        {oauth2, [
            {token_generation, YOUR_TOKEN_GENERATOR}
        ]}
    ].

The default token generator is called oauth2_token. To implement your
own you should create your own module implementing the
oauth2_token_generation behavior exporting one function
generate/0.

Conflicts:
	src/oauth2.erl
Add info on token generation to README
spec cleanups
Merge pull request #19 from IvanMartinez/master

Separated scope verification in oauth2_backend:verify_client_scope/2 and oauth2:verify_resowner_scope/2 (Issue #12)
Merge pull request #5 from kivra/master

Update to kivra/oauth2 master