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.
You don't have an `eval` block, so you won't be able to capture any exceptions.

You might want to do

```perl
use_ok("NCM::Component::pam") or BAIL_OUT("Module under test not found");
```
or
```perl
eval {
    use NCM::Component::pam;
};
plan skip_all => "Testing module not found in the system" if $@;
```