WIP: Using IdentityCache to store entire Order object
[api] Remove code in line_items_controller_spec that was testing for side-effects

It is not important that reloading the order object here means that the total is different. All that is important is that the line item is updated correctly. Order total recalculation should be done as a side-effect of that, sure, but it shouldn't be something that we're testing here.
[api] Explicitly call Order#persist_totals after applying a promo code

Necessary because the handler only updates the totals. This is useful for instance if we want to attempt to apply multiple coupon codes to the order at the same time and at the end we can call persist_totals, leading to only one hit to the database. Also, this is necessary because PromotionHandler::Coupon should only be responsible for applying the coupon code promotion, and should not have anything to do with the persistence of the order.
[api] Explicitly save a line item upon creation

Previously, we didn't need to do this because OrderContents did it. Now that OrderContents no longer has this side-effect, we have to save it explicitly.
[api] Explicitly save line item in ShipmentsController

See previous commit for explanation
Unsure of why @shipment.reload needed to be here, given that there doesn't appear to be a test that shows this breaking...
[api] Clean up Api::ShipmentsController tests for removing a variant