Part 1: Using Indexes

This implements the code from part 1 and creates a very simple in-memory DB that supports indexes.