Extends #159 to further verify behaviour

This pull request extends #159 to check that the resultant transaction outputs are as expected (the `to` address and `change` address only).
To do this, the address stored in `TransactionOut` is compared against the expected addresses.

Due to the lack of support for alternate network versions in `TransactionOut`, this required a change to add network support in `Transaction.addOutput` and `TransactionOut`s constructor.

This pull request also fixes `Address` support in `Transaction.addInput` which has previously been untested.