Add each refund as a purchase item

- Add new Model_Purchase_Item_Refund - it references Model_Store_Refund
  and holds a negative amount equal to the total amount of the refund.
- Allow Model_Purchase_Item reference to be of any type not just Sellable.
- Add new Model_Store_Refund::add_purchase_item_refund(). It adds a new purchase item
  to the store purchase of the refund.
- Add new Jam_Behavior_Payment_Refundable.
  It calls Model_Store_Refund::add_purchase_item_refund() on model.after_refund event
  of the payment. It is attached by default to Model_Payment.
Add new tests for refunds and refund item
Merge pull request #8 from OpenBuildings/purchase-items-refunds

Add each refund as a purchase item