inverse_of for charge => credits && charge => debits
credit and debit validate on charge and not charge_id
refactored charge, credit and debit factories to remove 'base' method and add options to pass in objects.