[WIP] Add support for original_invoice link on refund invoices

Refactor how associations are created in order to support the ```class_name``` option for the ```original_invoice``` ```belongs_to``` association. Instead of being an array of resource class names for each type of relation, making it an array of ```Association``` objects containing a relation type, resource class name, and an options hash for other settings like ```class_name``` if the resource class of the object does not match the resource class name of the association.

Approvers: @cbarton 

Tests:
For a site with ```line_item_refunds``` enabled:
- Find a refund invoice
- Verify that the ```original_invoice``` method on the invoice returns an invoice object for the invoice refunded
- Find a invoice that is not a refund
- Verify that the ```original_invoice``` method on the invoice returns ```nil```