pbkdf2: fix key stretching

Uses the implementation of PBKDF2 from [pbkdf2-compat](https://github.com/dcousens/pbkdf2-compat) package.

Fixes the following problems with the previous implementation:

* `createHash` undefined 
* `alg` undefined
* invalid key stretching/padding (is why the current tests are failing)
* removal of inner-loop conversion of `salt` to `Buffer` (was implicit with `.update(salt)`)

Alternatively, I can fix these manually; this was just quicker as I already use `pbkdf2-compat` for other projects.

OR, rather than copy the code, you can [include the package directly](https://github.com/dcousens/crypto-browserify/compare/dominictarr:master...dcousens:pbkdf2b?expand=1).