Global product promotion blacklist

Any products not marked as `promotionable` will not have promotions applied to them. Also, orders containing only non-promotionable items won't have order-level promotions applied.

Not sure if there's a desire for such functionality in core, but figured I'd push up a pull-request and find out.
can we private this method? do we gain anything exposing it right now?