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.

Conflicts:
	core/CHANGELOG.md
	core/spec/models/spree/payment_spec.rb
Refactor process_payments!

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

Conflicts:
	core/app/models/spree/order.rb
Add authorize_payments! and capture_payments! to orders.

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

Conflicts:
	core/spec/models/spree/order/payment_spec.rb
Merge pull request #6 from freerunningtech/2-2-idempotent_processing

Refactor payment/authorization processing