use cpp_strerror() wherever possible, and make it be the POSIX one

Portability is enhanced by not relying on the Gnu behavior of strerror_r()
(namely, that it returns char * rather than int), so select it with
an #undef; further, clean up the random calls to strerror and strerror_r
(along with all their private little one-use buffers) and regularize
the code to use cpp_strerror almost everywhere.  Where changed,
any negation of the error code is also removed, since cpp_strerror()
will do that.

Note: some tools were using their own calls to strerror/strerror_r, so
will now get a (%d) in their output that wasn't there before; hence
the change to test/cli/monmaptool/print-nonexistent.t

Fixes: #8041
Signed-off-by: Dan Mick <dan.mick@inktank.com>