Add apply_promo_code endpoint to 2-1-stable

This commit adds the necessary logic to apply a promo code to an order against the API. The RESTful contract was structured in a way to be identical with the eventual API endpoint in Spree master, as implemented in this commit. This should allow people to code against this apply_promo_code and not have to change their client code when the real API endpoint is available.

https://github.com/spree/spree/commit/72a5b74c47af975fc3492580415a4cdc2dc02c0c