Refund preferences & Reimbursement Items

- Allow admins and customers to specify refund types
  - Provide a field for customers to specify a refund method preference at RMA time
  - Allow admins to specify an override refund method at reimbursement time
- Break out reimbursement_items from return_items into a separate DB table
  - Paves the way for non-return reimbursements. It also makes ReturnItem a bit simpler.

Minor:

- Fix the x icon on select2 selectboxes.
- Convert CustomerReturnsController into a ResourceController

Generated by @jordan-brough and @richardnuno

Fixes #5146
Default credit card per user

When an order is completed, we save the credit card used as the user's
default credit card. When creating a new order, we use an existing
credit card (if it exists) and attach it to the order before reaching
the payment state.

Fixes #5148
Add changelog entries for default address and credit card

See #5108 and #5148 for the actual changes.
Added payment source import from Order hash.

Fixes #5145
Fixes #5147
Fix source import specs.
Payments pass source not source_attributes.
Add default ReturnAuthorizationReasons

As per chat w/ @JDutil on IRC

Also fix similar ReimbursementType migration

Fixes #5154
RMA form fix and cancel fix

- Remove form field when the return item cannot be added.  Looks weird and it also causes nested attributes to raise.
- Cancel associated return items when canceling an RMA.  Return Item validations will ensure they can be canceled.

Fixes #5156