Remove Order#remove_invalid_shipments! which wasn't being called anywhere
Don't transition to delivery step if shipments are blank or if shipments DO exist, but there are no shipping rates for them
Devaguify description in checkout_controller_with_views spec
Stop an order from being able to transition from cart without any line items

Fixes #3312
[api] move 'apply a coupon code to an order' test into correct context
[api] A line item must now be created when attempting to transition out of cart step
Use Order#errors to convey useful error messages when an order fails to transition, displaying those errors appropriately in the checkout
[api] OrdersController tests must have a line item created before they can transition to address
Correct checkout_spec and state_machine_spec to account for ensure_available_shipping_rates method behaviour
[frontend] Create line items where necessary in specs
Remove deprecated Order#add_variant, Order#remove_variant and Order#shipment methods