Scope shipping rates as per display_on [Fixes #3124]

As shipping method rates set to appear only in backend should not be
displayed in frontend as well

[Fixes #3119]
Add nil object check for StockLocation#fill_status [Fixes #3131]
Fix product property delete url.

Fixes #3120 #3123
Fix remove taxon js code

[Fixes #3136][Fixes #3140]
remove redundant belongs_to

[Fixes #3122]
Change InventoryUnit#backorderable_for_stock_item implementation

Users were getting ActiveRecord::ReadOnlyRecord when updating a stock
item with backordered units. Due to ActiveRecored `joins` return
readonly objects

[Fixes #3066]
Refactor stock item process_backorders

Consider a backorderable stock item with 5 on hand
Customer goes to the store and purchase 10.

At this point stock item on hand is -5 (it has 5 backordered inventory
units)

Admin goes to stock management and adds +30 of that stock item

Before:

  * `save!` stock item with count_on_hand = self.count_on_hand + 30
  * On after_save loops through backordered units and calls
    adjusts the count_on_hand, by -1, and calls `save!`
  * Gets ActiveRecord::StaleObjectError

After:

  * Update count_on_hand attribute value (does not `save` yet)
  * Process backorders while there are items in stock (if any)
  * `save!`

Fixes #3066
Remove wrong assumptions from inventory unit spec [Fixes #3111]

That caused specs to fail on postgresql
Split line items across shipments
- Easily create new shipments from existing shipments
- Move items between shipments on an order
Fix for line item shipment total price display
[backend] Updated CHANGELOG
- Split line items
- Fix line item total on shipments
Fix users rule promo association

Also add an association_foreign_key config because it assumed that every
Spree.user_class would return User which might not be always the case.

[Fixes #3145] [Fixes #3149]
create stock_item if needed during stock_transfers
Load promotion rules after app initialization

So that they can make proper use of `Spree.user_class` which is only
defined on the app spree.rb initializer

[Fixes #3152]
Fixed FlexiRate Calculator when max_items is set

[Fixes #3160]
Don't save invalid addresses.

Bypass default scope in Spree::Order#associate_user!

This is more consistent with the Rails 4 implementation of update_columns: https://github.com/rails/rails/blob/8ac8eb66c19d352dde548fc5c9a632ffbb586abe/activerecord/lib/active_record/persistence.rb#L276. Also, it won't break if an app developer adds a default scope to Spree::Order.
Use rspec render_template for layout specification [Fixes #2974]

Improve product spec, too many repeated spec and create(:product) calls
Stock::Estimator should select the most affordable shipping rate by default

Fixes #3137
Stock::Estimator sorts shipping rates by cost

Related to #3137
Use shipping_method.adjustment_label in Shipment#ensure_correct_adjustment

Fixes #3138