Add invoice preview API

cc/ @austinheap 

tests:

  - Create a charge on an account, uninvoiced
  - `Invoice i  =  Account.Get("<accountCode>").BuildInvoiceWithPendingCharges();`
  - verify `i` has the correct invoice attributes and the charge is still uninvoiced