Add `Spree::Promotion#products` back.

Currently used in the frontend.
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.