Base58 Bitcoin core test compatibility

Depends on #144.

This pull request includes Bitcoin core tests for base58 to improve overall testing coverage for bitcoinjs-lib.

The existing implementation originally was failing these tests as can be seen if you checkout e2bd732.
The output was not correct in how it was dealing with leading zeroes in the `decode` case.

This was resolved during merging of some refactorings based on `base58-native` by Stephen Pair; and included migrating the code to internally use buffers, giving a substantial performance increase.

Lastly, a script was added to `qa/` for generating the base58 test fixtures from Bitcoin core upstream.
It is debatable whether this is how we should be doing this, and our own internal vectors will still need to be verified against other sources (see usage of `base58check`).