improvements to cleanup avatax spree code

1) Do not send anything to avatax if no shipping address or empty cart.
2) Return 0 in compute_order if there is any error instead of using default spree calculator
3) Introduce a avatax_invoice_at to differentiate the SalesOrder vs SalesInvoice request to Avalara (one is recorded, one is not)
4) Trying to improve tests.

NOTES: I tried consolidating the logic of caculator/avatax.rb#compute_order and the commit_avatax_invoice in the order_decorator. They are 90% similar until you run into problems with calling the self.rate. Worth another attempt later.

fix for typo

fix migrations, split add column from data population

remove update to nil on failure

switch to .blank?

first try at refactor

flush out refactoring, use pending when live tests not running

broke down the big fat method into smaller sub-routines

remove un-needed require per athal7 observation