Improved index api

Moved naming into a hybrid builder, did some crazy type inference stuff. The started unit test demonstrates the usage. Needs ... lots of Javadoc still.