Improved speed of Shipment#manifest

Grouping by the attributes variant_id and line_item_id showed a 2-3x improvement for big carts on the delivery page.

By grouping by these attributes rather than their association return values, we're not creating N new LineItem and N new Variant objects. We're now only creating 1 of those each per group.
Enforce ordering of shipping rates in Shipment model
Promo total is no longer factored into Order#shipment_total

This is because to calculate the order total, we take the item total (with no promos), the shipment total (with no promos) and then apply the total of the adjustments. Applying the promo_total within the shipment total calculation means that the order total has that adjustment applied effectively twice.
Allow for Promotion::Actions::FreeShipping#label to be overriden
Show original shipping rate + shipment adjustments in checkout summary
Ensure shipment costs are calculated before their promotions

This was an ordering bug, where the shipments promotions were being calculated before a shipment's final cost was set. This was causing Free Shipping promotions to be applied, but they would result in a $0 adjustment.

Switching the order in which these things happen makes it work.

I've also shored up the test for this within the free_shipping_promotions_spec.rb in the frontend.

Fixes #4428
Only offer to save address if a user is logged in.
Associate CreditCard with users and payment methods
Remember customer credit cards on checkout

Mostly inspired by Jeff Squires spree_reuse_credit_card extension, see
https://github.com/jsqu99/spree_reuse_credit_card

Once customers enter their cc info and recurring tokens are saved for
those credit cards the store can remember that info and display the
cards back to the customers so they don't have to enter cc info again
Provide interface to list and disable user payment sources

Users might include the Core::UserPaymentSource into their user models
or implement their own methods to deal with payment sources
Add checkout specs for using existing payment sources
Add CHANGELOG entries for reusing credit cards

Conflicts:
	core/CHANGELOG.md
	frontend/CHANGELOG.md
List customer payment sources on backend new orders

Fixes #4412
Move user admin interface over from spree_auth_devise, fill out with more information
Move billing to left of shipping in order_details

As discussed in https://github.com/spree/spree/issues/4438

Fixes #4438
Fixes #4443
Use try_spree_current_user instead of spree_current_user

Help us with backend build where spree_curent_user is not available by
default
Fixed taxon_preview helper to work properly with postgresql ordering. Fixes #4382
The order is a default scope so doesnt need to be set here just the select distinct change.
Use stub_model rathen than mock_model

Make rails 4.0.4 build happy
Save Asset rather than touch

spree_assets doesnt have timestamps fields and as of rails 4.0.4 it wont
touch associations anymore for models that dont have timestamps fields