Validate uniqueness of variants sku. Fixes #5015
Initial work on how to extend spree to support extensions that customize line items.

Adds the build_options hook for extensions to process their own cart params.

Fixes #4546
Address feedback and fix specs. refs #4546
Fix analytics check to run only when there is an order. Fixes #4929