Basic data structures for index
Tests are missing from this patch - will be covered properly by tests for the whole feature.
I'm just trying to split it into smaller patches to make it easier for reviewers.
This (with minor changes) was LGTM'ed here https://reviews.llvm.org/D39050. Adding original reviewers.