Validation tests & corrections

In the course of extending TestValidation to test _all_ possible check cases many small corrections to the validation code have been made.
The only more complex modification is that DimensionType now comes with an ostream overload and a util function to convert it to string that uses this ostream overload. This is being used in comparing units on tag references and Dimensions, to avoid throwing errors on SetDimensions which have no units by nature and thus shall not mean a unit mismatch.