Optional Password Policy enforcement

...reation

@ormsbee @jzoldak this is ready for review now. Due date is 1/30 (for sprint deliverable).

@antoviaque can you look as well

Documentation at: https://github.com/edx/edx-platform/wiki/Optional-Password-Policy-Enforcement

This PR will add the ability to define common password complexity rules (e.g. min/max length, min character types [e.g. 2 digits, 2 punctuations, etc], not being a common word or easily guessed password).

The core of this PR comes from the django-passwords project. I copied the file into our repo, because since it generates display strings, we want to add these strings to our I18N workflow. Also I needed to extend it to expose some method decorators to allow for test setting overrides.

NOTE: This is for new account creation only. It appears we are using some standard Django workflow/controllers for Password Reset use-cases, so I'm not seeing how to tie in these concepts with this 'out-of-the-box' approach currently in use. We'll need to be able to do the same enforcement on password reset flows.

@antoviaque do you want to do a quick eyeball on this before I send this along to others? The new decorators I added seem to be very similar, but I'm not quite adept at decorators to refactor these into a nice base-class to make it a bit more DRY.