[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
do we need to be concerned about the timing here at all in the case where there is an already committed return invoice? will requesting a new invoice for the same reimbursement in `get_tax` cause any issue?