Various tests and recoverPubKey change

This pull request adds more tests for `ecdsa`, `message` and `scripts`.

The only functional change is in `recoverPubKey`, which as discussed with @jprichardson, has had a superfluous verification step removed in favour of forcing the user to verify the pubKey themselves.
This is actually already inherent previously, but there were often only 2 candidate keys, not 4. 

This does not affect any of our code, as we only use the `recoverPubKey` operation in `Message.verify` and `ecdsa.calcPubKeyRecoveryParam` , and in both cases we have independent verification occurring of the returned public key. 
This change can be seen in https://github.com/dcousens/bitcoinjs-lib/commit/69e086275b6924dd93c8ddcaf86cf5867f7be3d3.
You changed the constructor here, just wanted to make mention of it incase it was an accident (PR comment didn't mention a TX constructor change).