Allow inventory tracking control (enable/disable) at the variant level. This retains the site-wide inventory tracking flag, but also allows this type of control down at the variant level.

Fixes #3974

Conflicts:
	core/app/models/spree/stock_item.rb
	core/app/models/spree/variant.rb
	core/spec/models/spree/variant_spec.rb
Use different id on hidden field so associated labels work as expected

Fixes #3981
position should not be present in taxon_attributes
Taxon sorting for 2-1-stable fix

Fixes #3989
[backend] Show additional and included tax in order summary
Remove duplicate included tax in order summary
[backend] Tidy up display of tax amounts in order summary sidebar
Display negative tax amounts on order summary page too
[backend] Show formatted payment amount on payments/show
Refactor OrderIventory

Part of #3991

An instance now holds a variant, line_item and order reader attr. It
makes the method signatures inside the class simpler. Plus an order
inventory instance job is figure whether or not inventory should be
created or destroyed based on the line item quantity
Add migration to associate line items and iu directly

Part of #3991
Update Shipment `set_up_inventory` to work with line_items

Part of #3991
Package `add` receives a line item as first argument

Part of #3991

So that it can set the line item when creating inventory units. Variant
would still be fetched from the line item
Set completed_at after line items are created in order_factory

Part of #3991

As it represents a more real use case. Having a empty completed order
would cause inventory issues when addin line items. e.g. It would try to
create inventory units for line items not yet persisted on the database
(read activerecord callback hell)
Fix specs related to package api changes

Had to modify the order factory which caused a bunch of other specs to
fail. Hopefully now it has a more reasonable approach which is first
create line items list then shipments and then update! itself.

Part of #3991
Remove Stock::RemainingPacker (not referenced anywhere)

Part of #3991

Had some broken specs there and decided to remove it rather then fix the
specs. It's not used anywhere and it's not clear why it exists so we
might be better off without it
Verify inventory after line_item is saved

We need the line item id when creating inventory units.

Part of #3991
Use find_each in AddLineItemIdToSpreeInventoryUnits migration to not load all the shipments at once

Part of #3991
Add missing let block for variant to order_inventory_spec
Correct check for variant-level inventory tracking in OrderInventory