Switched from usage of "msg" string to "id-msg-pair" throughout code

Changed the validation code to not just use simple string msgs as return status of validation tests but msg-id-pairs.
Thus in "conditions" and "Results" the "msg" var now is an std::pair<std::string, std::string>. All necessary methods have been adapted to handle this pair or vectors of it.
The id is acquired from a call to "parent.id()" which has been implemented in a way that tolerates "parent" objects without id method. To achieve this a new small helper lib with two SFINAE classes has been added. On parents without id method the id "unknown" is returned. Furthermore the id can be of any type known to "stringstream <<".
Removed all tailing whitespaces in validation code
Fixed "!check(val) || errOccured" => "errOccured || !check(val)"
Replaced "strPair" with "Message" struct as propsed by @stoewer
Merge pull request #236 from balint42/validation_concept

Switched from usage of "msg" string to "id-msg-pair" throughout code

OK
[test] RangeDimension::unit: fix test for none return case
[h5] RangeDimension::unit: return none if attribute is not set
[test] RangeDimension: test for none return of label property
[h5] RangeDimension::label: fix returning none if it is not there
Merge pull request #244 from gicmo/issue_233_rd

Fix none return for RangeDimension::label [h5]
Documentation: doc for nix::Entity
Documentation: added doc for NamedEntity
Documentation: modified doxygen config.

Doxygen now generates doc only for front facing objects, their sub classes and the things in nix::util.
Documentation: doc added for EntityWithMetadata
Documentation: doc added for EntityWithSources
Documentation: small addition to EntityWithSources
Documentation: tiny correction in IEntityWithMeta
Documentation: doc added for Block
Documentation: docs for DataArray added
Documentation: doc added for DataType