Add Omniauth providers to app

A continuation of #5.

OAuth login support for:
- Facebook
- Twitter
- GitHub
- Google Accounts

Presently no way to merge existing accounts with a signup and only one OAuth provider per account. TODO to fix that.

The commits here are horrible. I blame my headache.