Add MultiIndex

With Collection interface implemented.

Indicies are specified through variadic template arguments.

I assume we will specify these in the generated annotation combination
class, and also generate wrapper functions for each `lookup` variant.