Never allow multiple promos per order

This is split out from #4775. It ensures that no order can ever have more than one promotion. It is my understanding that this is not desired behavior in Spree 2.2. I thus do not expect this pull request to be merged, but I wanted to present it for completeness and to give people an opportunity to cherry-pick these commits to their forks if they want this kind of behavior.