Added sign in with GitHub

This also introduces a reusable interstitial and "Interstitial Memory" to make it easier to add new login services.