Simplify the transition to the order 'complete' state by removing the conditions. The Order.process_payments! method is now responsible for handling the transition correctly, via it's return value when it get's called in the before_transition. Essentially, the filter on definition is now redundant.

has_unprocessed_payments? is no longer required.

Fixes #3317
Revert "[frontend] Cache CheckoutController#edit using ConditionalGet"

This reverts commit edc2d33111f5409a95c72f3f083afa839e2854f8.

It was breaking displaying of validation messages related to payment
processing.
Revert "[frontend] Cache OrdersController#show using ConditionalGet"

This reverts commit 6753f3b16cdbae9eb953090c831a96d463c77003.
Raise RecordNotFound in OrderContents#remove

Remove TODO on `remove` method and raises error when the line item can't
be found by variant

Fixes #3316
Show 'No stock locations found' rather than a dodgy looking table when there are no stock locations
Redirect to stock locations page if there is no stock location on 'Stock Management' page for a product

Fixes #3304