IFile: reduce dependency to front facing objects
IBlock: reduce dependency to front facing objects
Remove: unnecessary pointer casts
IFile & IBlock: remove unnecessary forward declarations
IDataTag: reduce dependency to front-facing classes
IDataArray: dependency to front-facing classes

- Remove dependency to Dimension front-facing classes
- Fix some ugly code in DimensionsHDF
IFeature: dependency to front-facing classes
ISection: dependency to front-facing classes
ISimpleTag: dependency to front-facing classes
ISource: dependency to front-facing classes
PropertyHDF5: cleanup imports
Entities: dependency to front-facing classes part1

This is just the first of two steps
Entities: dependency to front-facing classes part2

Remove dependency from File in EntityHDF5. This step
requires changed in almost all classes of the hdf5
back-end.
Entities: dependency to front-facing classes part3

Remove dependency from Block in EntityWithSourcesHDF5. This step
requires changes many classes of the hdf5 back-end.
General: code cleanup and todo comments
FeatureHDF5: dependency to front-facing class Block
SectionHDF5: dependency to front-facing Section
Merge remote-tracking branch 'upstream/master' into nix-308

Conflicts:
	include/nix/base/IBlock.hpp
	include/nix/base/IDataArray.hpp
	include/nix/hdf5/BlockHDF5.hpp
	include/nix/hdf5/DataTagHDF5.hpp
	include/nix/hdf5/SimpleTagHDF5.hpp
	src/hdf5/BlockHDF5.cpp
	src/hdf5/DataTagHDF5.cpp
	src/hdf5/SimpleTagHDF5.cpp
Added new helper, new util function & corrected existing ones
Added cli executable to CMakeLists & created basic cli.cpp