Perform user registration backend validation

The backend should also validate user creation rules so that
someone can't just hack the api.  This means checking that
a valid email is specified and that the password meets
password rules.

Addresses #75 and #105.