Add client-side validations for users.

Previously, user validations were done server-side, with error messages
being shown if need be. This adds client-side validations via HTML5.
All fields are required for a new user, and all fields besides
`password' and `password_confirmation' are required in editing an
account.

The email is also validated on a new user registration, but is not on a
user edit. This is because admins and non-Oxford accounts should be able
to change their email to a non-Oxford one.