Add User table index migrartion

Prepare a migration to change the indeces on the users table:
  - Remove the unique requirement for the users' email index
  - Add an index over the provider and uid columns
Fix User index migration

Syntax doesn't require 'column:' to be specified, just provide an array
of the columns if there is to be more than one in the index.
Run User index migration
Add email validation back to User model

Validate the uniqueness of emails if one is provided during record
creation. Users authenticating with an oauth provider won't have an
email address so the field is allowed to be black. Those that do have
one need to have a unique address.

The index over user emails in the database allows for blank emails
across any number of user records. However, it loses the ability to
check for duplicate addresses where they do exist. Records then must
be checked in the model (but this is the only place they're validated).
Add sanity check test to User model spec

Check that users can have the same provider with different uid's and
vice-versa.
Enable OmniAuth test mode in specs

To test omniauthentication, flag test mode as true. This will make
OmniAuth stub the results of an authentication request instead of
making an actual request to the auth provider.
Create support module to stub auth results

Incdude a support module into the Rspec config with methods for
stubbing valid and invalid credentials from auth providers.
Create feature specs for OmniAuth testing