Support for GiftCards (see desc)

If a user has a GiftCard in their hand and is LESS than the price of what they want then the value of the GiftCard will be subtract from the price. The user's balance is then checked (see: http://nfell2009.uk/shopsearch/docs for supported checkout operators) if they can afford to pay the rest with their bank then the transaction will go ahead. Otherwise the transaction is cancelled. However, if the GiftCard is EQUAL to the price then the full payment will be made through that. If the GiftCard is GREATER than the price, the payment will be made to the GiftCard and the GiftCard will be changed to how much is left after payment.