Add optional feature to lock out accounts after N failed login attempts. Lockouts will last M seconds.

add DB migration and fix earlier mistakes in student migration history

add tests and fix bugs that came out of those unit tests

remove unused import

pep8/pylint

address some PR feedback

fix tests

fix broken test

try to mock time

use freeze-gun to overload the system time to simulate the future
Merge pull request #2331 from edx/chrisndodge/lock-accounts-after-failed-attempts

Ability to lock out accounts for N seconds after M failed login attempts