New paradigm for customer refunds

Initial step in a larger piece of returns & exchanges improvements.

Major

* new "refunded" state for return authorizations
* separation of refunds from payments
  * add a new refund model
  * use "refunds" in place of negative payments
  * stop generating order adjustments when receiving return authorizations
      * we no longer need to create order adjustments in order to provide refunds
* updated admin ui
  * added a "refund" button in the return authorization flow
  * list refunds along with payments
  * add payment identifier column to payments list

Minor

* extra validation on `ReturnAuthorization#force_positive_amount`
* improve some existing specs by using real `ActiveMerchant::Billing::Response` objects instead of doubles

Generated by @jordan-brough & @richardnuno
good point. i've pushed a commit to swap amount & payment method.

for the date/identifier ordering -- we were kind of trying to emphasize that the identifier here is the "foreign key" id of the payment and that it's not the refund's own id.  here's a screenshot of the current view:
![screenshot-2014-06-30-08-20-25](https://cloud.githubusercontent.com/assets/23050/3430452/c5d5dc2c-0061-11e4-89db-04b46d6e2601.png)
Thoughts?