Modify transaction interface

* Add checks when serializing
* Add default _estimateSize to generic inputs
* Fix multisig size estimation
* Change _addOutput to addOutput
* Add addInput and using that internally
* Split `getFee` out from `_updateChangeOutput`
Add tests for changes to Transaction interface
Add `uncheckedAddInput` function

* For internal usage: for example, testing Script.Interpreter
Merge pull request #812 from eordano/feature/safeSerialize

Modify Transaction Interface