Having to cast a password provided as `const char *` to
`const uint8_t *` is a needless pain in the ass when using the API.
Hence, fix it by accepting passwords and salts as `const void *`
instead.
Wipe temporary buffers and sha256 contexts so that no remnants of the
password is left on the stack
This ensures that the password is not leaked if some function reads
the stack afterwards.
This add an implementation of PBKDF2 using sha256 hmac. Only one derived
key length is supported (32) though it should not be hard to extend it.
The testing is done with both random (with fixed seed) vectors amd vectors
from rfc7914.