This uses the .gitignore format to identify
which files should be allowed / blocked.
The allowlist gets precedence over the blocklist
if both are specified.
This is the first implementation of a recursive
DSO cleaner which is reasonably fast.
The implementation is still (unit-) untested.
Of course, modules to be dlopen'ed will always
escape such a tool, which will need to
support another cleaner plugin with a
whitelist.