Modernize MCInterfaces and SimComponents
- use DeclareInterface
- use extend_interfaces instead of explicit virtual inheritance
- use struct for interfaces
- prefer override
- remove obsoleve SVN/CVS keywords
- add const to some interface methods
- adapt code in SimComponents to const interfaces
- avoid std::list
- prefer STL algorithms
- prefer range-based loops
- use auto
- remove trivial explicit destructors in favor of implicit destructors
- use CommonMessaging methods instead of explict MsgStream