Stock::Quantifier must take a variant, not an id

This is an alternative to #4658

@brchristian pointed out that the previous resolve_variant_id logic was broken
when a variant had been deleted.

This removes the resolve_variant_id private method from Quantifier, and 
reuqires that a variant object be passed in. Finding associated variants 
should be the resposibility of the caller, and the code to load a variant
unscoped need not be here.