Zones are now completely dynamic, i.e. the number of zones of each type can change during the run, e.g. by run-time mesh-to-mesh mapping onto meshes with different zones used to control mesh motion. This means that the index of each zone may change during the run and so it better that the zones do not cache their own index but it is looked-up from the zone list using findIndex when required.