Cdodge/shopping cart rewrite

I agree. I would like to move the random string generation into a utility class. However it's needed also for the new Auto-Signup feature that is in flight, so we can't put this into 'shoppingcart', but rather some neutral djangoapp, like 'utils'. However, I can't do that until the other feature PR lands