We should allow users to pass in a function that can take in a an output Value and generate the output UTxOs. This would allow developers to customize things, e.g. defragment wallets or split CNTs across UTxOs to make subsequent transactions more efficient.