Update inventory warning logic in product grid view

New logic:

“Limited Supply” =  one or more variants has inventory and is below its
set threshold

“Sold Out” =  all variants have inventory tracking and deny when out of
stock

“Backorder” = all variants have inventory tracking but one or more do
not deny when out of stock
Update badge style for grid view

Any badge element used inside .product-grid-item will now overlay the
product image in the top left corner.
Merge branch 'master' into inventorytracking
Disable quantity field when child variants exist
Update variant quantity logic

Added check for quantity exists in hasChildVariants helper

Started on after.update collection hook (commented out in this commit)
First attempt at quantity collection hook

results in an infinite update loop
Updated hook for parent variant qty updates
Remove updateParent flotsam
Math update for qty update hook
updated variant hook to check if qty needs changing
if this is the parent variant, don't fail
and don't fail if no inventoryQuantity in variant
Allow for 0 quantity

variant quantity wasn’t being updated by the before.insert hook if the
child variant value was being set to 0
Make new child variants default with no qty
Fix bug

Allow for child variants with no qty value defined. Without this, when
you change an option quantity and another option is present with an
undefined qty, you get the parent variant qty set to NaN
Start on price range for variants with options

Still need to set price to “n/a” when options are present as well as
work out a few edge case bugs.

Also need to add a similar range to grid view
Finish price range logic

Moved price range calculations into helper functions
Add price range to grid view
Remove price field validation if disabled

If price field is disabled due to child options, remove validation that
requires a price value on the parent variant
Allow blank quantity