Add support for multiple scopes with different configs

The motivation for this PR is to be able to use multiple warden scopes with different github configs, which currently is not possible.

Multiple configs would be useful when a website uses GitHub for both users and admins while using different OAuth scopes (e.g. *user:email* vs *repo*) or different GitHub applications for authentication.

This change is fully compatible with the old way of specifying configs. These have been deprecated in the sense that they still work but issue a warning message when used.

Additionally, the config params all use the same names as the GitHub OAuth API defines them.

***

PS: Sorry for that many PRs, but they're all crafted with :heart: