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.
@weilu a transaction output may only be spent once.
The internal `Transaction` in `TransactionBuilder` would be invalidated (see `Transaction.prototype.addInput`) if it were to be added twice. 

See: https://github.com/bitcoinjs/bitcoinjs-lib/pull/244/files#diff-52af0f8b5da51627aa8d01193636ba73R51