buf2 is not necessary

...make more readable code by eliminating the buf2 variable.
eliminate a copy for a minor speed improvement

The hash returned by sha512 actually already is a buffer (unlike the other hash
functions, which are arrays). No need to copy it to a buffer. Just return
as-is.
unnecessary to fill entire buffer

tiny speed improvement by filling only part of buffer that needs to be filled.
the correct algorithm is actually "if"

...this fixes a bug where sometiems the length of key is incorrect. Since the
blocksize is usually less than the blocksize, it should be padded with 0s to
bring it up to the blocksize.
minor speed improvement by not making new buffer
expose bip39
o_key, i_key actually not necessary

...minor speed improvement by only using the o_key_pad and i_key_pad buffers.
allow skipping of slow tests

run the tests with:

TEST_SKIP_SLOW=1 mocha
add to README about how to skip slow tests

BIP39 tests are really slow (because, basically, BIP39 is deliberately designed
to be slow because it uses 2048 iterations of PBKDF2), so we explain in the
README how to skip these tests by using the cool new environment variable
TEST_SKIP_SLOW.
use test vectors in json file

...always better to use data files for test vectors where possible.
forEach is a more appropriate way to loop here
migrate towards require('crypto') away from hash.js

Turns out that browserify actually supports sha512, one of the reasons I had
avoided using require('crypto') hash functions before. Migrating to these
functions is significantly faster both in node and in the browser. This
partially solves the problem of PBKDF2 slowness.
replace PBKDF2 with faster alternative

Use pbkdf2-compat which is much faster than my PBKDF2 function. Also update the
dependencies to remove the sha512 package and add the pbkdf2-compat package.

Thanks @jprichardson for the great suggestion.
v0.0.4