Fix item_total_spec by using a real order object

The ItemTotal code determines if an item is an order or something else by checking its class. A double just won't do because the double's class is not Spree::Order. So therefore we just use a Spree::Order instance
Promotable in Promotion#rules_are_eligible? may be either a line item, a shipment or an order
Check in-memory all_adjustments array for promotion credits in CreateAdjustment#promotion_credit_exists?