Adds version support to Message.verifyMessage

As I mentioned in #98, at this time you cannot verify a message that is not on the main bitcoin network.

This is due to the address that is being derived from the recovered public key is by *default* an address with the Bitcoin version.

This pull request resolves this issue by making less assumptions about the `address` input parameter, letting it be a `String`, `Address` or even byte array (that is, consistent with the `new Address` constructor); and then derives the address from the version of the input address instead of defaulting.