Test to see if a better coupon exists already

If we don't find the valid promo in all our places it could be
successfully applied, but it *is* still on the order, it was accepted by
the order but a better one was used instead

Fixes #5139
Fix Spree::Promotion not applying all of the time.

There was a specific case in which promotions added to an order would
not apply to new items added to the cart. This corrects that by having
the PromotionHandler activate all promotions already associated with the
order as well as any with a blank code and path.

Closes #5072

Conflicts:
	core/spec/models/spree/promotion_spec.rb