Estimator tweaks improvements (performance)

These were part of https://github.com/spree/spree/pull/5676 but I'm moving them here just so we only focus on the `order.contents.add` action there. I was too naive thinking I could review both add to card and the transition to shipment state in one shot.

Dont intend to do any more work here for the time being. Unless someone finds any issue with the changes or we get a broken build it can be merged soon into master. Reviews are much appreciated.
Use the new Ruby 1.9 hash syntax.