Mesh index type cleanup.

Using specialized enum instead of global Type and shitload of type
traits to handle it correctly. Removed TypeTraits::indexType() and
cleaned up MeshTools::compressIndices() while at it.
Removed SizeTraits, SizeBasedCall and related mess.

The implementation was really frightening and it was really used only in
MeshTools::compressIndices(). Other classes like SizeTraits, Pow and Log
were just waiting to be deleted, nothing of value was lost.