The usecases we figured are:
* from a public key (and mainnet vs testnet choice), generate P2PKH address
* parse P2PKH or P2SH address - confirm valid, confirm testnet vs mainnet, print binary dump of payload
* generate a Bitcoin TX output payload from a P2PKH or P2SH address
* generate a Bitcoin TX input payload according to P2PKH template, from a private key, a TXID and output index
* generate an unsigned Bitcoin TX input payload according to P2SH template, from a script
* generate a Bitcoin TX, with one signed input according to P2PKH template, from a private key,
a TXID and output index, and an output to a P2PKH address
* generate a Bitcoin TX, with one signed input according to P2SH template, from a script, pushdata constants, a TXID and output index,
and an output to a P2SH address
* check if an Bitcoin TX input or output payload matches the p2pkh or p2sh pattern
* extract Bitcoin address (always zero or one in count isn't it??) from Bitcoin TX input or output payload
* ??? WIF serialization ???
* ??? HD wallet xprv serialization ???
* get list of transactions from txindex for given p2pkh/p2sh address