Remove password migration functionality

This was introduced to migrate all users over from bcrypt hashes to
SHA512. This migration happened transparently when each user logged in.

See https://github.com/alphagov/EFG/commit/c1258856d86846eaeec89fba6c68fd3217b08970 and https://github.com/alphagov/EFG/commit/65e08d8

Since we now expire passwords after 90 days, all users have either been
migrated over, or will need to reset their password. 

See https://github.com/alphagov/EFG/commit/b239792

This means we can remove this migration code.
Add password history feature

People should not be able to reuse their existing password. That means
that any password reset event (such as caused by heartbleed) is somewhat
meaningless if the same password can be recycled.

We allow the encrypted_password in old_passwords to be null, since when
we create a user, we don't create a password for them.

A CfE Admin will create a new Lender Admin by specifying first and last
names, and an email address where the confirmation link will be sent.
The password isn't set until the new Lender Admin follows the link to
complete the sign-up flow.

We could get around this by generating a random value for the password,
but that was a bigger change.
Slightly more succinct.
Don't blow up if the loan's amount is not set.
Don't blow up if the loan's repayment_duration is not set.
Slightly reduce complexity.
Merge pull request #238 from alphagov/fix-nil-divide-by-bug

Fix a couple of nil bugs
Merge pull request #236 from alphagov/password-history

Add password history feature