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