Part of: add VecMatOnMeshLib toghether with tests

added by Norihiro Watanabe.
Replace mesh pointer with reference in MeshItems.
Rename MeshItem to Location.
Update documentation of Location.
Rename MeshItems to MeshSubset.
Rename ComponentDistribution to MeshSubsets.

This reflects the purpouse of this class better.
Make MeshItemType::type enum to an MeshItemType enum class.

This improves type safety. Also add an operator<<().
Add operator<<() for Location.
Move MeshSubsets related code to MeshLib.

Rename MeshItem.h to Location.h.
Move MeshLib::Location related implementations into cpp file.
In MeshSubsets remove not required 'explicit' keyword.
Test MeshSubsets meshes uniqueness.
Add MeshSubsets meshes uniqueness precondition in ctor.