Promocode UX improvements

Fixes two outstanding issues with promocodes:
1. Correct handling of leading and trailing whitespace
2. Added a "Promocode does not apply to the current order" error message to give the customer better feedback when trying to apply a code.