Made frontend class-type params be references. Split all multi-getter.

Multi-getter like "references" have now all been split into one without filter param and one with, to avoid default value. This was already done for a subset of multi-getters to allow passing them to validation and thus now is more consistent and allows to use references everywhere (which would not be possible for params with default value).
Implemented name instead of id in HDF5 in case of DataArray
Fixed CreateDataArray using wrong hasDataArray method, added test
Fixed Feature having missleading internal var naming
Made "name" a read-only attribute by removing setter
Implemented using name instead of id also for Tag, MultiTag and Source

Also added test for "DuplicateName" error
Implemented use name instead of id for sub Sources

Added test for "DuplicateName" too
Made name a read-only attribute on Property by removing setter

Removed tests too
Implemented use name instead of id for PropertyHDF5

Added test for "DuplicateName" error too
Made Section & Block use name instead of id

Adapted tests too
Added fix to testReopen to avoid duplicate name
Made all entity groups in BlockHDF5 optGroups

Fixed default parameter in ```optGroup::operator()``` to be ```false```
Made dimensions group in DataArray an optGroup
Made sources group in EntityWithSources optGroup
Made groups in MultiTag optGroups
Made groups optional in Tag, fixed get-logic on MultiTag::getFeature
Made groups optional in SectionHDF5
Merge pull request #346 from balint42/name_as_id

LGTM
Made createId use boost::uuid, removed check for uniqueness

Also adapted tests
make id boost::uuid & small fixes:make refs const,group methods faster