add refund capability and referenced purchase.

You will need to save the transaction reference from the original
transaction and pass it in to the gateway refund method along
with amount, currency and a transactionId (I just use the current time,
down to the second).

As far as I can tell, the transaction reference allows CardSave to
identify the card, so you can use it to refund any amount.