New Charge resource

Introduces a new `Charge` resource that will allow for better handling of errors for failed charges.