Adds IProductCatalog interface with some database logic and an in-memory version for testing.