Return empty entities in getters of optional attributes if field not found.

All getter of optional attributes that return entities now return an empty entity if the according field and / or entity is not found.
Many getter have been fixed to check for ownership and / or existence of the entity to get before just trying to retrieve and return it.
In the DataArray interface IDataArray a new method "bool hasData()" has been implemented to allow checking whether "createData" has already been called from outside the class, e.g. in "DataArray". In "DataArray" the new "hasData()" method is now being used to check whether calling of "createData" is necessary before using "setExtent". "createData" now sets the "data" field in the group and not just in the file.
TestDataArray now also tests "hasData".
Where possible getter with "size_t index" parameter now call the "const string &id" overload instead of own code.

Implements sub-issue 2) of isse #88.