We mimic what pam_debug.so does by default, by implementing a similar
module fully in go, generated using pam-moduler.
This requires various utilities to generate the module and run the tests
that are in a separate internal modules so that it can be shared between
multiple implementations
A PAM module can be generated using pam-moduler and implemented fully in
go without having to manually deal with the C setup.
Module can be compiled using go generate, so go:generate directives can be
used to make this process automatic, with a single go generate call as shown
in the example.