Refactor while second test red.
Bit more refactoring while second test red.
Replaced EmptyScanner with SimpleScanner.
Introduced Products object to support different types of product.
Introduced Item object to support different items.