PBKDF2 Support (OpenSSL backend)

This PR adds PBKDF2 classes, interfaces for the backends, support for OpenSSL, and (of course) tests.

I've put a few comments below to draw attention to a few things we should agree on.