Track created_by on orders

This work is building up to a fix for #3346
last_incomplete_spree_order for a User will now only return orders created by that user

Fixes #3346
[backend] Add missing stub for find_by_number in OrdersControllerSpec
[frontend] Stub created_by creation in orders_controller_spec
[api] Correct line item check in orders_controller_spec
Fix Spree::Calculator.calculators method

Fixes #3426
Make zones more robust by allowing types with 2 words (i.e. zip code).

Fixes #3431
Add #total_on_hand method to Variant model

Fixes #3427
[api] Correct line item quantity checking in orders_controller_spec
Selects 'state' as default zone type when there has not yet been a selection made.  We are already showing the 'add state' button in this case, so this commit makes the UI uniform ('state' radio is selected and 'add state' button is shown)

Fixes #3432
Do not check stock quantity twice when saving line item

Every time an user pressed the add to cart button spree was checking
stock in OrderPopulator and before saving the line item, through
Stock::AvailabilityValidator. I believe we only need to check stock on
the LineItem model

Fixes #3434
Add validation of shipping_category_id to Product. Fixes #3188

Conflicts:
	api/CHANGELOG.md
	api/app/helpers/spree/api/api_helpers.rb
	api/spec/controllers/spree/api/products_controller_spec.rb
	backend/spec/features/admin/orders/shipments_spec.rb
	core/CHANGELOG.md
	core/spec/models/spree/product_spec.rb
Fix spec broken by conflict.
Remove select2-rails from Rails frontend gem

Bump select2-rails to ~> 3.4.1 in backend gem

Update helper `select2_search` implementation due to latest changes on
select2 generated markup, had to find a new way to grab select2 element
id

Fixes #3457
index spree_orders#completed_at