User pages

Adds the forgot password reset code and the change password and user info profile pages.
I agree tha the form input names should match DB columns; otherwise you will have to have a dict that relates the names of the form input elements to the database columns to which they correspond (which isn't really that bad, but might as well avoid it since we can)