Create new Storage component to reduce code duplication between components
Fix typos, add new methods to StorageInterface
Rework cart to use new CartContext and Storage component
Merge pull request #2089 from stloyd/feature/storage

Create new Storage component to reduce code duplication between components