Implemented MnemonicCode according to BIP0039

Ported this from bitcoinj's implementation.
Note that toSeed() is not yet working due to the lack of a PBKDF2SHA512 implementation for Dart.