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.
I haven't checked, but I guess these functions have no changes other than moving files, right?