Order#process_payments! no longer raises

The original use case for this was to prevent the order to complete with
payments in failed state. However this also prevents the order to
complete when a payment was already authorised and marked as processing.
This may happen when authorising a full payment amount while creating a
payment profile.

This commit essentially pushes the responsability of raising a
GatewayError to the Gateway
simple_current_order only gets incomplete orders

This currently causes an issue with better_spree_paypal_express, and
possibly other extensions.

While Spree sets the session's order_id to nil when an order is
complete, better_spree_paypal_express does not.  Therefore, a completed
order can be retrieved as the simple_current_order.

It makes sense to replicate the logic of current_order (which does not
allow completed orders to be returned) here.

Fixes #4702
No payment error when order has no payment

Follow up to 20b47028f786257c4283a33626a7d4111d9b9669
Allow payment transition from processing to void

Another follow up for having a gateway both create profile and
authorize full order amount before order transitions to complete.
Default item quantity to 1 on api/orders/:number/line_itmes
Set CreditCard#confirmation_value when reusing cards

Allow gateways to double check that value when reusing the card