Users.models: Add method to generate random token.
Merge branch 'master' into forgot-password-link

We need the new html for the login drawer.
Added forgot password links to login forms
Use hexdigest for password reset token.

This is so I can route urls using the token.
Adjust size of password_reset_token.

A typical md5 string is only represented by 32 hex
characters rather than 120 characters.
Users.views: Prevent admin from viewing password_reset_token.
Add reset password form.
Create template for password reset form.

Ensure that the user exists before sending an
e-mail.
Templates.base: Give "Forgot Password?" a link.
Generate a password reset token if the user exists.
Use urandom to generate different hashes.

The previous method was generating the same hash
over and over.
Set up mailing system for password resets.
Forgot Password: Add link to reset password.

 * Place token and username in templates.
 * Add a signature.
 * Modularize email templates.
Add migration for password_reset_token column.
Update requirements.txt.

Add Flask-Mail and its dependencies.
Travis: Add dummy values to travis.
Fixed users login href, added custom sender, fixed message formatting
Use sender variable instead of admin.

It's more explicit.
Merge branch 'forgot-password-link'