Make shipment serializer build its items from inventory units

Currently shipments build their items from the line items, not the
inventory units. For normal shipments that does not pose a problem,
however, for exchange shipments (https://github.com/spree/spree/pull/5073),
where a new inventory unit is generated for the original line item
(but a new variant), the original item's sku would end up being included in
the shipment payload, which is incorrect.

The information sent in the shipment record ends up being mostly the
same, with the difference being that until inventory_units have a
quantity on them (coming soon https://github.com/spree/spree/issues/5091)
items will be flattened.

#### dependent on the merge of https://github.com/bonobos/spree/tree/2-2-dev-returns-and-exchanges into 2-2-dev