[WIP] Downstream changes and extract email sender domain

I'm sick of having a private version of Samson. This is an attempt to bring anything from our private version of Samson which should be in the public version and extract a few extra configuration options to ENV variables

### TODO
- [ ] Squash the history on this branch

cc /@zendesk/samson
How about separate option ENV['AUTHN_GITHUB']  and ENV['AUTHN_GOOGLE'] ?

We can't test presence for client id and secret, as github_client_id and secret is used for checking out repositories and will be always present. Also, for some reason if we want to disable authentication for some other purpose, it will be better to keep it separate option.