Increase default iterations of PBKDF2 to 100,000.

20,000 is too low to be a sane default in 2014. According to OWASP the
rule of thumb is to tune the work-factor to make sure the process takes
around 250ms to 1s.

100,000 iterations takes around 241ms on my mid-2012 MacBook Air, so
given modern hardware 100,000 seems to be a fairly sane default.
Add support for HMAC.

Supported algorithms: HMACMD5, HMACSHA1, HMACSHA256 (default),
HMACSHA384 & HMACSHA512.