Week 4 part 2

Implemented sending welcome email, added tests to email sending, and implemented password resetting
When you write error messages, if you tell whether a user exists or not, you are giving information about your database to hackers.  A lot of apps do this, I prefer not to in my apps though.  I prefer a success message either way.  (Obviously your cannot be blank message is fine)