use only completed promotion usages when checking usage limit

It should only count completed orders against the usage_limit.  Counting incomplete orders as using a coupon doesn't make sense.  We could also probably take the promotable argument off of the usage_limit_exceeded? method signature but I wasn't sure that was a good idea.
I put it here to closely match the handling of insufficient stock on an order so we don't have different places/logic for handling different kinds of errors.  If you like I can update the api controller to handle expired coupons in the same way it handles insufficient stock.  It doesn't look like the backend  has anything to prevent out of stock orders from completing so I would not suggest adding a coupon filter there.