[th/nmp-cleanup] cleanup of NMPClass and virtual function implementations
- avoid redundant functions and assert against that.
- add a unit test for consistency checks of NMPClass.
Due to an influx of spam, we have had to impose restrictions on new accounts. Please see this wiki page for instructions on how to get full permissions. Sorry for the inconvenience.