Begin GitHub OAuth integration
First pass at GitHub contact integration.

Very rough around the edges
Avoid storing constructors on constructors

Split the identity-provider-specific constructors into a dedicated
object. This avoids potential name collisions and makes lookups more
explicit.
Re-factor AJAX prefilter generation logic

Eliminate reliance on global scope and promote testability.