man: fall back to case-insensitve when a command was not detected
man: support .Nm, which seems to be a mandoc feature
man: instead of failing on big 'words', flush

the do_fontwords function would, before my change to check the
remaining buffer size before each insertion, just silently over-
flow "word".
with my previous change, the checkp macro, it caused an
assertion error on a number of manpages from sabotage.

for example, man 8 lvresize.

now the remaining buffer size is checked at the beginning of each
loop and flushed if necessary (the flushing is not real, it's
only put into a different buffer, line - checking that one for
overflows will be another task...).

that can lead to some long lines not coming out exactly as intended,
but at least they're readable and using the intended text attributes.

in the same turn, i factored out some common repeated functionality,
and removed other buffer size checks which are now obsolete.
man: move the cmd_list block to where it is used
Makefile: add special rules for su FLAGS
man: add bounds checking to print_word
man: document the meaning of the verbose flag
man: make it possible to pipe manpage through a preprocessor

the preprocessor name is manpp and expected to live in $PATH.

using an external preprocessor, we can sanitize some of the
220 groff, mandoc, etc macros currently not provided, without
having to hack into the guts of this problem.
the preprocessor can just apply a couple of sed or awk rules
which strip out the junk or translate it into proper nroff.