Transaction Builder

The aforementioned, and still in need of plenty of test fixtures, `TransactionBuilder`.

Anyone is welcome to throw fixtures at it, but, presuming you abide by the API (should be obvious), it should automagically sign them correctly with the private keys provided.
See tests for the intended behaviour.

All standard transaction types are supported including P2SH variants thereof. 

It also needs a `fromTransaction` method for initializing it from an incomplete `Transaction` so you can pass a incomplete `Transaction` around between signers.
A good point, the situation here is that someone is attempting to add an input to a `Transaction` that already has signatures.
Those signatures (as specified by their `hashType`) are enforcing that the `Transaction` may not be altered without invalidating those signatures; and therefore invaliding the `TransactionBuilder` object.