Mesh lib add properties

This PR is for discussion.

- It adds an implemention to manage properties within the Mesh. 
- The properties are not associated to specific mesh items like mesh nodes or mesh elements. The user has to associate properties to mesh items itself. 
- 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.
- An usage example is given in the test.
searching with `string` could be expensive if this function is called frequently. alternative way is introducing name IDs which a user can get via `unsigned getPropertyID(name)`