Raise Core::GatewayError when process_payments! is called and there's no pending payments. Can occurr when previous payments have failed.

Fixes #3317
Improve readability of process_payments spec

Related to #3317
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