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

Conflicts:
	core/app/models/spree/stock_location.rb
Bump to 2.0.1
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]
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.
Specify class name for calculator association in calculated_adjustment

Otherwise, top-level classes that include this module will have an association that looks for ::Calculator, rather than Spree::Calculator
pass country_id as data to jQuery.get

if your default url options happen to include ?locale=en then
the previous implementation would end up generating:
api/states?locale=en?country_id=49 instead of
api/states?locale=en&country_id=49

Fixes #3108
compare strings to strings when transitioning to shipment states

Fixes #3105
Add #in_stock? method to Spree::Variant

As proposed by @jdutil in spree/spree_wishlist#37

[Fixes #3163]
Split line items across shipments
- Easily create new shipments from existing shipments
- Move items between shipments on an order
Fix backend order split shipments action

When moving an item to a existing shipment from the same stock location
it would make two requests to remove items from the same shipment.
Instead it needs to remove from one shipment and then add the same
quantity to another shipment

[Fixes #3161] [Fixes #3162]
Fix build specs and split shipment edit button [Fixes #3168]

They were mostly failing due to a js error and shiping labels

Conflicts:
	core/spec/models/spree/shipment_spec.rb
Ensure correct classes on stateSelect, stateInput elements in address
spec

Fixes #3165
Fix variant thumbnails not showing on frontend

The thumbnails for variant would not show on variant click. And the
product page opened without any visible thumbnails.

Fixes #3130
When adding a variant to a RMA, do not mark the inventory unit as received until the RMA has been marked as received.

[Fixes #3121]
[Fixes #3180]
Remove create_inventory_units preference that is no longer used.
Namespace navigation tab translations so that they don't clash with translations such as en.spree.orders.show

Fixes #3133
Remove overridden deprecated methods and fix deprecation warning format thrown by them

Fixes #3055
Rename shipping_methods_zones table to spree_shipping_methods_zones

Fixes #3174
[api] StockMovements can never be altered (updated or destroyed), only created

Conflicts:
	api/app/controllers/spree/api/stock_movements_controller.rb