Move set_shipments_cost call to Order#update_from_params

This stops the method from being called whenever Order#checkout_steps is called and thereby reduces some queries that shouldn't be happening.

A much neater fix for #2191.

This should apply to 2-2-stable, 2-3-stable and master.