Modernize DetDescSvc
- prefer std::unique_ptr over raw pointer and explicit delete
- add const
- prefer STL algorithms over raw loops
- fix ownership transfer
- prefer auto, make constant string static
- remove execute bit from file permissions
- use std::unique_ptr in internal PlacedSolid
- make internal PVolumes keep PVolumeElement by value instead of owned pointer
- use boost::optional is a stand-in for std::unique_ptr when heap allocation should be avoided