Fix email signup race condition

The error `ERROR in user:570 Multiple email addressed matched: taylor@uwflow.com` was logged multiple times. The user probably clicked 'sign up' multiple times and caused two accounts to be created. This error was raised the next time they tried signing in. Of the two accounts that were created, only one account had schedule and transcript information, and the other one had nothing. I also suspect that there may have been network issues in order for the requests to arrive so close to each other.

Fixed this race condition by creating a sparse unique index on `User.email`. This enforces uniqueness on all users with non-`None` emails, but still allow `None` emails (sometimes we don't get an email from Facebook logins)