Shopping cart

First draft, shopping_cart exercise solution
This is realistically bad path, as is the next test. Good ideas, though. The cart emptiness is probably unnecessary, something else like `my cart hasn't changed` might be a good way to express it in English, though the underlying test would probably still test for an empty cart.