This is roughly the smallest diff necessary to move output to a hook.
There's a lot of code reorganization that should still happen to bring it
better in line with this new structure.
This makes it possible to support transactions that divide funds in
ways other than a simple percentage split. For example, there
might be tax withheld, or a flat fee expense on each transaction.