Added logical & fixed normal Section valid.,added util::hasEmptyEntity
Fixed empty optional being dereferenced throughout validation code.
Implemented more meaningful validation check for Source.
Removed check for empty sub sources in Source
Implemented more logical checks in DataTag & necessary SFINAE helper
Implemented new condition "could" & call pattern with sub conditions
Implemented new SFINAE helper to check for methods
Implemented new checks to be used in validation code.

New checks include: isAtomicUnit, isCompoundUnit, isValidUnit, isSet, isSorted
validation in DataArray&Dimensions now uses new sub-conditions&checks