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
added 'through: :stock_items' to 'has_many :stock_movements' relation in variant class
commented stock_movement field in Variant