add man from elkscmd
man: remove K&R cruft
man: ran indent tool
man: make struct smaller and const
man: if PAGER is not set, default to less
update man's man page
man: prefer and support posix manpages, change default search path
man: sanitize some of the string handling

there was a case which invoked UB by strcpy'ing the start of the
line_header buffer to it's tail, but POSIX says that both pointers
may not overlap (restrict).
man: stretch to terminal width
man: always print document footer

if page_length was set to 0 (tty in usage), no footer was printed
at all. otoh in the other case, the page number was always printed
even for the final footer.
man: remove little_header

this seems like an anachronism, and gnu man doesn't use it as well.
man: build_header: do everything with snprintf
man: update copyright
man: print section headers bold
man: when we're not on a tty, don't print escapes
man: remove printing of page footers

this seems to come from a time where your printing software
didn't take care about printing line numbers if desired.
the page numbers and footer were printed only in non-tty mode,
for example when redirecting stdout to a file.
man: when we're not on a tty, don't print escapes - for real

the last try worked only for \f escapes applied by the program
itself, not for those passed by the manfiles themselves.
man: fixup section headers bold commit

the previous commit worked, but when a section header contained
more than one word, only the first word was printed in bold,
and the space between both words was missing.
man: do not fail when PAGER is not set

the direct usage of getenv in the popen call caused
sh: -c: option requires an argument
and is actually UB since POSIX requires the argument to popen
to be a zero-terminated string.
man: do not print header differently if not a tty