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.
this is a 2nd level indent with only 4 spaces. i never know wheter to cleanup the whole thing or only the parts that are touched. just saying that this indent is not correct ;)