Base58 Check rework

This pull request changes the `base58check` API, removing the `version` parameter completely in favour of simply performing the checksum comparison and encoding/decoding the Base58 only.

This has been chosen in favour of some formats such as the export format in `BIP32` using 4-byte version constants instead of the traditional 1-byte.  This means there is less code duplication in `HDNode` and overall the remainder of the code stays relatively similar.
It also makes testing remarkably simpler for `base58check`.

Finally, an additional change that enforces consistent use of the `network` objects throughout the code base has been applied.

`ECPubKey.getAddress()` and `ECKey.toWIF()` now take a network object.  This actually simplified the `Message` signing code a little bit as well.