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
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
Redirect to stock locations page if there is no stock location on 'Stock Management' page for a product

Fixes #3304
Show 'No stock locations found' rather than a dodgy looking table when there are no stock locations