Improves Api::ProductsController#create

Conflicts:
	api/spec/controllers/spree/api/products_controller_spec.rb
	core/app/models/spree/variant.rb
Fixes duplicate OptionTypes on Api::ProductsController#create
Fixes products_controller_spec

Conflicts:
	api/spec/controllers/spree/api/products_controller_spec.rb
make sure we sanitize the coupon_code input
refactored the find_promo_for_coupon_code and added spec