Reduce the number of cascading touches.

For better performance, don't call `touch` when not
necessary.

* After saving a product, but neither the product nor its
  default price changed, don't touch it.
* After saving a stock item, only touch the variants if the stock
  item changed.

Background: in ActiveRecord, if a product has not changed,
product.save will not write to the DB--but it *will* fire
the `after_save` callback. In that case there is no need to
touch anything.

Also factored out a method in variant.rb.
Merge pull request #14 from godaddy/reduce-unnecessary-touches

Reduce the number of cascading touches.