nmsg.h: document that libnmsg is not usable if nmsg_init() failed
nmsg/msgmod/lookup: require that _nmsg_global_msgmodset be non-NULL before dereferencing it
make the message module plugin directory overrideable via the NMSG_MSGMOD_DIR environment variable
nmsg: nmsg_init(): convert the multiple initialization assert() into a failure return
msgmodset: _nmsg_msgmodset_init(): always cleanup on function exit

also, switch to a simpler open() + fchdir() + close() technique for
saving and restoring the current working directory instead of the
pathconf() + getcwd() + chdir() thing.
nmsg: nmsg_init(): add the warn_unused_result attribute, for GCC compatible compilers