Modernize PartProp
- add 'final' qualifier when appropriate
- do not (explicitly) implement destructor if not needed
- do not explicitly disable default constructor which is not generated implicitly
- remove obsolete SVN/CVS keywords
- prefer std::unique_ptr over raw pointer and explicit delete
- prefer range-based for loops
- prefer auto for loop iterable
- prefer info(), error(), debug() over explicit MsgStream
- do not call default member constructors in constructors