Add a `ensure_updated_shipments` to Order model

Abstract the logic a little bit so it can be easily replicated through
code base
Recreate shipments on line items change [api]

Resolve the same issue described in #3181 but now on the api component