Implemented spree 1-3-stable current process_payments! method in order_decorator.rb

The previous process_payments! method ignored the order total when processing payments, causing any credit cards entered (and subsequently replaced/update) to be charged. This results in multiple charges on the customers card. 

This commit copies the logic from the current spree 1-3-stable branch's process_payments! method from the Order model.