MX-166 Support s2, haystack, and 2d geospatial indexes. Refactor
Descriptor and KeyGenerator classes to be virtualized and support
different index types other than standard and hashed.