Implement a clojure map-based index

This is mostly an experiment to see how it compares to the existing index.

**Note:** This is not ready to be merged yet.