Finalize autobridging implementation (RIPD-179):

* RIPD-486: Refactoring the taker into a unit-testable architecture
* RIPD-659: Asset-aware offer crossing
* RIPD-491: Unit tests for IOU to XRP, XRP to IOU and IOU to IOU
* RIPD-441: Handle case when autobridging over same owner offers
* RIPD-665: Handle case when autobridging over own offers
* RIPD-273: Groom order books while crossing

Additionally, add support in LedgerEntrySet to allow transfer fees
to be specified by calling code instead of being calculated by the
transfer functions:

* Implement new "issue/redeem" model for IOU movements
* Implement new "transfer" model for IOU movements

Clean up signature verification logic in the main Transactor.

Reviews: @JoelKatz, @rec, @vinniefalco but everyone is welcome to get in on the game.
I realize that a good chunk of my confusion here steps from my lack of understanding of this little class.

What's a `Flow`?  Why do multiple `Amounts` make up `issuers`??  I'd expect those to be `Account`s.  What exactly does `order` means?