Require controllers before attempting to decorate them

This fixes the situation in the tests where the decorators were loading before
the classes they were trying to decorate

Conflicts:
	app/controllers/spree/checkout_controller_decorator.rb
	app/controllers/spree/orders_controller_decorator.rb
Add a comment about why spree/auth.rb needs to exist
Add pry because it's awesome for debugging

Conflicts:
	Gemfile
Fix CheckoutController spec by using a real Order object:

Conflicts:
	spec/controllers/spree/checkout_controller_spec.rb
Correct User stub within ProductsController spec
Correct flash message + field checks in users spec
Remove payment requirement from checkout spec so that it is smoother

In the auth tests, we don't really care about payment stuff... so why even test
it? This means that we don't need to create a payment method in the test and we
don't need to load the payment view.
Massively simply checkout spec

A lot of the tests that were here already have corresponding tests within core/frontend
Use correct email address for user mailer
Correct flash message in sign_in_spec
Correct flash message in user_spec
Stub has_available_payment so that validation doesn't fire
Updating a user shows the user again, so no need to navigate back in user spec
add a stub for has_spree_role? within CheckoutController spec
Correct event name within promotion adjustments spec