[IndexSet] Clean up per-GeometryType size and index maps

For each codimension, the IndexSet of MultiDomainGrid contains a pair of
index and size maps that provide the actual per-GeometryType index
information. In the original implementation, these maps were implemented
as std::maps on the GeometryType, which creates lots of unnecessary
memory indirections.
This patch replaces those maps with std::vectors indexed by the
LocalGeometryTypeIndex of the geometry type. I don't expect huge savings
because most host grids will only contain a single geometry type per
codimension, but the change also simplified the setup code quite a
bit (a simple resize instead of manually creating map entries for each
geometry type).
This conversion also got rid of the absolutely inconsistent way of
accessing the map entries (find() vs. [] and even some instances of at()
that were probably leftovers from a debugging session).