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.
In this case, we're doing two things in one method. Instead I'd like to see one method responsible for determining the errors, and another responsible to remove the invalid adjustments.

Something along the lines of:

```ruby
def handle_expired_promotions
# First, determine the errors
@order.determine_expired_promotion_errors!

# Next, handle them
if @order.errors.full_messages.any?
  @order.recalculate_adjustments
   redirect_to ....
end
```