MeshLib add properties

This PR is based on the discussion in PR #531:
- It adds an implemention to manage properties within the Mesh.
- The properties are associated to specific mesh items like mesh nodes or mesh
  elements via an enum class (see enum class MeshItemType).
- The properties are not restricted to a particular data type, you can use several types like double, vector or matrix
  types at run time together (see tests).
- There is not a possibility to get the value data type.
I also told Tom that I disliked certain parts of this implementation. But for a relatively easy management of the data structures involved that seemed like the simplest solution to do it.
Maybe we can do a short meeting beginning of next year and talk about the reasons for this implementation as well as possible alternatives. I suppose this is more productive. Also, keep in mind that this should just implement a first working solution which might be changed later if we see that things are too complicated when handling prop vecs in practice.