Handle invalid e-mail addresses better

When a user signs up / signs in with an invalid e-mail address, they
will be taken to the user edit page and given a flash message
instructing them to use a valid e-mail address.

In handling this case, another hidden source of confusion has been
partially fixed -- when a user registers and their account does not
pass Devise's validations, the errors are swallowed and they are
redirected to the root path with no flash messaging. We now accept any
e-mail address provided by GitHub via OAuth and create the account
anyways, but redirect them to a page where they can set their e-mail
address on their own.

Closes #110.