Modernise ncm pam

Brings ncm-pam up to modern standards, including use of CAF::FileWriter, some unit tests and a large overhaul of the documentation to reflect how it is actually used.