Tx bldr coin selector/allocator extensibility

Enables descendants of TransactionBuilder to extend or completely replace the coin selection workflow in TransactionBuilder with minimal disruption to the core code.

In particular, these extension points enable a descendant class to implement coin *allocation* semantics, above and beyond the base TransactionBuilder's coin selection semantics.  "Allocate coins from the unspent outputs of these addresses to satisfy these outputs" vs the default "select from the coins provided".