Check email address before adding

Only allow email addresses that aren't already
registered, or are registered by another user.

Provide appropriate error messages.
Allow login with any valid email

If you have multiple email addresses associated
with your account, you can now log in with any of
your emails.  This functionality existed before,
but there was a bug in the logic in `utils/user.js`
which is now fixed (user > userEmail)

Fixes #146.