Feature request: Dynamic override from database
Passing the secret as querystring is not safe, I think maybe it's better to load the configurations from database.

```js
// First, create a provider
let provider = new Provider({
  provider: 'twitter',
  override: 'myapp',
  config: {
    "key": "...",
    "secret": "...",
    "callback": "/hi"
  }
})
provider.save()

// Then
app.use('/grant', grant({
  "defaults": {
    "protocol": "http",
    "host": "localhost:3000",
    "transport": "session",
    "state": true
  },
  "google": {
    "key": "...",
    "secret": "...",
    "scope": ["openid"],
    "nonce": true,
    "custom_params": {"access_type": "offline"},
    "callback": "/hello"
  },
  "twitter": {
    "key": "...",
    "secret": "...",
    "callback": "/hi"
  }
}, async function(provider, override){
   // Load from database.
  let doc = await Provider.findOne({
    provider,
    override
  })
  return doc.config
}))
```
- `/connect/twitter/myapp` will load the config from database.