Fixed #21253 -- PBKDF2 with cached HMAC key

This gives a 2x speed increase and removes the ability to DoS with large passwords.

Sorry this is my hello world for Python, and I don't even know how to run it. It probably works but you should test it.

https://code.djangoproject.com/ticket/21253