wallet exposes unspent outputs via a getter

also add reverseEndian method to convert
wallet allows setting unspent outputs
throw error when unspent output does not have required keys
minor refactoring
add toAddress and getOutType tests to script
script.toAddress -> script.getToAddress
add (some) fromAddress and getInType tests to script
add tests and refactor wallet.processTx
wallet.outputs[0].output -> wallet.outputs[0].receive

output is overloaded. Considering we have output.spend, output.receive makes sense to me
Transaction is able to estimate fees
minor refactoring: Transaction tests use fixtures
remove processOutput and processExistingOutput

instead of processOutput, use processTx instead
processExistingOutput is time based which is not reliable
implement and use txOut.scriptPubKey
createTX returns tx with expected inputs and outputs
always assume change output exists when estimating fee
sign tx
check for dust before creating transaction
throws error on insufficient fund
skip change if it is not above dust threshold
remove old methods