Improvements to BetterRandomString().

- Fixed a bug where all but one possible characters are used in the string.
- Try and use openssl_random_psuedo_bytes() if it is enabled.
- Use mt_rand() instead of rand() if openssl_random_psuedo_bytes() isn't enabled.
Made some security improvements to password request.

- Use a longer password reset key.
- Make password reset requests expire after 1 hour.
- Display a link to the password reset request form on an error.