Add RSpec tests for user's password and the authenticate method.

Adds tests to determine if the requirements for a user's password are
being enforced and if user objects have a working "authenticate" method.
The password must:

  - Be present;
  - be at least 10 characters long;
  - be at most 32 characters long; and,
  - be saved as a hash called the user's password digest.

Tests are failing.
Add validations to regulate user's password.

Adds validations that will enforce the user password requirements listed
in the previous commit. The function has_secure_password was added to the
user model to handle most of the validation work, and consequently a
column password_digest was added to the user table in the database and
the password hashing is accomplished via BCrypt.

All tests are passing.
Refactor code so style is consistent and more concise.

Makes the code clearer, more concise, and/or less verbose. Makes no
functional changes.

All tests are passing.