Modernize Det/DetDesc
- make reference counting in Services thread safe by use of shared_ptr / weak_ptr
- prefer static const data over member data if it is invariant
- prefer struct over class if all member data/functions are public
- do not explicitly implement destructor if the implicitly generated one is sufficient
- remove obsolete CVS/SVN keywords
- add final if possible
- remove commented out code
- prefer auto