Refactor stock related service objects to deal with inventory units.

Prior to this change, stock related service objects (coordinator, packer,
prioritizer, package, adjuster) were tightly coupled to orders and line
items, such that they would only create a set of shipments for the set
of line items for an order.

This change makes those objects work with inventory units, which enables
future enhancements that would create shipments for an order that are
not necessarily tied to the initial purchase (e.g. upcoming exchanges
work).
it would be nice to get to a place where the order holds a bit less value to so many pieces of the system, thus making code easier to reason about and refactor without affecting seemingly unrelated parts of the system. at a high level, if it is not explicitly necessary for packing related objects to know about an order, we may be better off keeping them separated.