createTx: pick utxo and estimate fees
createTx: add tests to cover outputs
wallet holds addresses and change addresses in memory

while still uses their respective indexes for serialization
add tests for getNextAddress and getNextChangeAddress
expose a method to find the private key of a given address
createTx signs the tx