Improve validation of email addresses and fixup bad data in the db.

This was previously only validating that an email had exactly one '@' in it (the default devise behaviour).  This tightens that up to only allow well-formed domain parts (we had some users in the db with a trailing ',' and other things on the email address.

Also added a migration to fixup the invalid entries.