Pathfinding with multiple issuers for the same currency (RIPD-618).

Lots of little changes here, nearly all of them not changing anything algorithmic, nearly all of them obviously true.

They all prepare for https://github.com/rec/rippled/commit/843042dbb3b23df072b826b2714088c9ba07f585 which does in fact make the change in a few lines.

The only other change which isn't more or less obvious is this one:  https://github.com/rec/rippled/commit/84c6e2b2439e29b771a880ae53bc23381224288d

If you don't like the refactoring changes, now I finally understand how it's done, I can get rid of 'em - but most of 'em are pretty useful IMHO.