Transaction: support non-addressable output scripts
Transaction: renames getHash to getId

Also removes the inherent calculation of tx.hash after a
deserialization.
If a user wants this, they can do it themselves very easily; the
bitcoinjs policy thus far has been to avoid result caching in the
default case.
Especially since a hash is not guaranteed to be the same if the
Transaction is modified after deserialization.

Also adds a test for getId.
Transaction: TxHash no longer stored as hex
Transaction: remove address from txOut
Transaction: restrict Transaction constructor
Transaction: fix test name
Transaction: move test to proper section
Transaction: test hex formatting
Transaction: rename script -> scriptPubKey
Transaction: rename type to hashType
tests: avoid b2h where toHex exists
Transaction: tests should show unboxing of parameters
Transaction: now returns index of added input/output
Transaction: remove estimateFee

This is a wallet abstraction.
txbuilder