Allow 'save_grant' listener to pass err, extras

Adds arguments to 'save_grant' event callback:

- `err` for any errors that occurred while saving the grant.
- `extras`, optional, overrides the default `extras` generated by oauth2-provider. For example, allows implementing modules to use their own grant code.