Fix specs to pass with tighter constraints

* Change to use factory girl when the object used would otherwise be
  invalid.
Add validations to Spree::Order

* This focuses most on improving the existing validations and adding
  validations for the totals that are updated based on user input.
[WIP] Change Spree::OrderUpdater#persist_totals to validate the totals

* If the totals are greater than the database columns can store, then we
  should avoid hitting the database and report the error.