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.
It's not that expensive with less then say 1000 properties stored, because of the std::map. Should this be a bottle-neck, one can switch to a hash-table (aka std::unordered_map) providing O(1) access.