Shopping cart - Iteration 2

In this second iteration, I made the changes suggested in the review for Iteration 1. The major changes are the following:

1. Asserting the total cost of the items in the shopping cart throughout my Features.
2. Using scenario outlines for `coupon.feature` and `shipping_estimate.feature`.
3. Testing edge cases throughout (ie, adding more than one coupon; adding items now out of stock, multiple products in cart, etc).

Thanks!
Extract this to Background