Added CouponApplicator class

This is a combination of this commit and 4 others:

* Use CouponApplicator in API's CheckoutsController
* Fix spec failures
* CheckoutsController spec for apply a coupon to an order
* Removed unnecessary include

Fixes #2548