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.
also remove optional, since included in the header. Same as the logog.