Detect old-style order refunds

In the `Spree::Order#has_non_reimbursement_related_refunds?` method.

The old style was not migrated due to not enough information being stored and because of potential ambiguities, but we still need to account for it here.
Fixes #5348
Encapsulate handling of payment preconditions

This would allow us to create methods that would verify the integrity of
a payment but allow us to do custom things with it.

Add utility methods for explicit authorization and capture.

There are times in custom applications that we explicitly want to
authorize or capture regardless of the payment_methods auto capture
preference or the store configuration. This lets us do that while
maintaining that the regular preconditions for payments are met.

Refactor process_payments!

As with the payment changes, this allows us to call custom methods on
payments for processing.

Add authorize_payments! and capture_payments! to orders.

Allows us to specifically authorize or capture payments on an order.

Move payment processing to a concern

Fixes #4879