Implemented Coupons Rules in Cart

* Created relationship between Coupon and Rule
* When a Coupon is added into a Cart, all Coupon Rules are verified
* If one of them or more do not validate, dispatches a CartCouponOnRejectedEvent
* When a Cart is loaded, if an existing and applied coupon also becomes invalid, same behavior
* Tested both scenarios