implement custom has_usable_password (fixes #37)

password resets did not work for users with unmigrated password hashes because
Django's contrib.auth.views.password_reset checks for valid passwords before
sending the mail.

* caffeine.models:
  - implement custom has_usable_password that considers the old bcrypt hashes
* caffeine.tests.test_models:
  - implement test methods for has_usable_password
* templates/registration/password_reset_email.html:
  - whitespace fix for users without first name data