Refund improvements

Charges and refunds now use sequential balance_transactions, similar to how Stripe IDs currently work. Also fixed a bug where refunds weren't picking up the ID from the charge they are refunded from.

This PR comes as a result of developing an app that saves certain details of Stripe transactions to a database. The database has a unique index on balance_transaction, which was blowing up in testing.