Return adjustments with line items
[api] Add ability to apply coupon codes from the API

This will be used in frontend's checkout when the user hits 'submit' on the payment step. Once the user clicks the button, they'll see 'applying coupon code' while there's a synchronous background request that is attempting to apply this code. If the application is succesful, the coupon_code field will be cleared and the form will be submitted as normal. If it is unsuccessful, we will show them an error message.

The benefit of this change is two fold: 1) applying a promotional code is computationally difficult and may cause the payment to take longer than the user has patience for and 2) that you won't lose the payment information if the coupon code is invalid. The latter being the bigger win here, imo.