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.
@rinkk In contrast to other ```add```, ```get``` and ```remove``` methods, where you give the data per argument to the method, here the data structures are created from the method itself and can be filled outside of the object. How this works you can see in the tests below.

I think the most explicit and clear name is ```createNewPropertyVector```.