Modify Transaction Interface

Closes #789 and #799 

* 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`
did you leave this on purpose? why not throw an exception?