[DO NOT MERGE] Return Invoices

[Don't merge yet -- Specs are still in the works]

We now support calculating return invoice taxes via Avatax and recording our return invoices in Avatax.
Also starts using the SOAP API, which has more functionality to allow us a better flow.

Note: We also now need to have a "2-2-dev" branch since this stuff isn't compatible with stock spree 2.2

Flow is like this:

- Reimbursement triggers this extension in SpreeAvatax::Reimbursement.generate
- We make a call to Avatax to calculate and store an uncommitted return invoice
- We save the result as a SpreeAvatax::ReturnInvoice in the db
- The reimbursement model performs all the reimbursements and then triggers SpreeAvatax::Reimbursement.finalize
- We make a call to Avatax to mark the return invoice as committed and then update our model with committed=true
hm, great point.  i'm thinking maybe we handle that in spree-backend code?  after having read a bit more of their docs it appears that avatax doesn't really link purchases & refunds at all so at the avatax level they're fine w/ refunding items that weren't originally recorded in avatax.