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]
Add icon to remove stock items from product section
Use new stock location api in product stock management

[Fixes #3051]
Remove leftovers allow_backorders references

Backorders can be configured now as per stock location or stock item

[Fixes #3049]
Remove Address#phone_validate which is not being used.
Fix phone number for my ocd.
Remove commented out code that is no longer valid.
attr_accessible :country_id is duplicated

[Fixes #3114]
Make sure that the images aren't CMYK. [Fixes #3104]
No need to pass option on spree.promo initializer

For some reason this was making the calculator.shipping_methods nil in
the spree app initializer. It prevented users from adding their own
calculators with code like:

  Rails.application.config.spree.calculators.shipping_methods << CustomUserClass

Fixes #3118
Deprecate Order#shipment as split_shipments makes it less relevant
Stop using deprecated Order#shipment method in OrderInventory spec
Remove nonsense js code on backend customer details

When picking up a user at the backend customer details order step that
code would empty all address fields, including the previously set
default country

This should fix the backend build.

Fixes #3129
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