Recreate shipments in frontend when necessary

Every time a customer gets to the point where shipments were created,
delivery step, and then decides to go back and change some item quantity
or add a new product we need to recreate the shipments so they properly
reflect the current order state.

I initially tried to apply these changes on the spree_core level but it
turns out to be really difficult because while both backend and frontend
use the same API in backend inventory units are created as soon as items
are included on the order. On the other hand in frontend inventory units
are only created when customers reaches the delivery step

Fixes #3339
Fix back end payment methods not showing up

Fixes #3233

Conflicts:
	backend/spec/controllers/spree/admin/payments_controller_spec.rb
[backend] PaymentsController#load_order should return order object, not result of authorize! call
Add dependent: :destroy to Spree::Shipment.shipping_rates

When an order transitions back from delivery, to a prior state, then back into delivery, shipments are destroyed, but not shipping_rates, leaving orphaned records behind.

Fixes #3349
Add backorderable default config to StockLocation [Fixes #3045]

Stock items backorderable values will be set according to this config
every time either a variant or a stock location is created

Related to #3323
Add propagate variants config to StockLocation [Fixes #3050]

Every time either a new stock location or new variant is created the
stock_location##propagate_all_variants value will be checked to decide
whether new stock items should be created for the new stock location or
variant

Related to #3323
Do not build packages for missing items

When building shipment packages Spree assumed that every order item had
an existing stock item in all stock locations. But that may not always
be the case since the `propagate_all_variants` config was added to
StockLocation in #3050

I think we should move forward with this. Spree should be smart enough
to figure out which order items exist in which stock locations.
Honestly I don't like the implementation of this fix but it was the only
one I could come up with for now.

This issue was brought in #3051. So we need to figure out it first to
only then merge that PR.

[Fixes #3067]

Related to #3323
Add icon to remove stock items from product section

Related #3323
Use new stock location api in product stock management

Related #3323
Order transitions should be attempted when on the edit page

Fixes #3336
Fix issue where setting backorderable to false would not actually set it
Order stock items by ID to have determinate results in backend's spec/requests/admin/products/stock_management_spec.rb
Fix wrong discount calculation with flat percent promotions when there are more than one line item in the order

Fixes #3054
Add default order to the variants_including_master product association
Translation fix in StockTransfersController. Make back to transfers buttons consistent.

Fixes #3362
Remove optimistic lock from inventory units.

Fixes #3238
Fixes #3367
Show useful error messages for promotion rules and actions

Fixes #3358
Bump rspec-rails to 2.14.0

Fixes #3356
Update Font Awesome to version 3.2.1 with 361 icons total now available in admin

Fixes #3355
Remove items with quantity 0 on cart page

Read line removed in e07f4569f2dd63f411d81b6cf380140a73ac1de1 and add
spec to prove why it needs to be there for now

Fixes #3353