Password reset

Password reset feature. Generates a token that is valid for a specified length of time (currently 2 hours).
Outstanding: Mailer and some form of clean-up for stale tokens that haven't been used.