Change before_filter to before_action
Change order populator to handle invalid variant_id and quantity values

* Refactor code and specs to cover all the cases.
* Change the caller code to pass in variant_id and quantity coerced to
  integers, rather than strings.
Fix code formatting
Fix state_changes to be destroyed when the associated order is destroyed
Refactor Spree::Order#associate_user! code and specs to be simpler

* Expand the specs to test all possible code paths. This code is fully
  mutation covered by mutant.
Change Spree::Order#associate_user to copy address information
Fix specs to pass with tighter constraints

* Change to use factory girl when the object used would otherwise be
  invalid.
Fix test_app rake task to create a dummy app for the sample directory
Fix code formatting
Remove unused method from Spree::OrderUpdater
Refactor Spree::OrderUpdater specs to use an explicit subject
Refactor Spree::OrderUpdater#persist_totals to be simpler
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.
Fix spelling of canceled to be consistent
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.
Move require for stringex to correct location
Cleanup permalink deduplication

* Kill the deduplication via suffix appending on validation.
  Not needed as we generat a unique value initially.
  There is a small chance that multiple threads generate the same random
  value the same time and persist it. This was possible before and after
  this change.
* The extra LIKE queries being caused by the deduplication code have a
  significant performance impact as they cause a sequencial scan on
  unoptimized schemas.
* Remove all unused public interface or semantics