Dial down on the overloading in the ShapeMap class in MultiDim

The functions in ShapeMap were so heavily overloaded that they were
practically unusable in bigger examples. The poor type checker had no
chance of inferring what the right type should be.

Also some documentation
Fix matrix multiplication in MultiDim