z/OS UNIX System Services port: EAGAIN, SIGPIPE

Updated z/OS UNIX System Services port to address two issues found while running tests:

1.   Some tests would sometimes fail with "Resource temporarily unavailable" (== EAGAIN)

2.   test_monitor (but apparently no others) would sometimes fail on SIGPIPE (ie, write to closed socket/pipe/etc)

All "Resource temporarily unavailable" issues were tracked down to a close() call in src/signaler.cpp, in the destructor, that did not check for EAGAIN, and asserted the result would always (immediately!) be a return code of 0.  Added close\_wait\_ms() static function (and related sleep\_ms() static function) which loops (with ms long sleeps) on close if rc==-1, errno==EAGAIN, up to a maximum timeout (default 2000ms == 2 seconds).

SIGPIPE appears to be caused by timing races causing ZeroMQ to sometimes write on closed sockets.   src/stream_engine.cpp attempts to set the SO\_NOSIGPIPE socket option if present, but this is not present on z/OS so does not happen; the other commonly suggested work around is to use send(..., MSG\_NOSIGNAL) instead of write(), but this is also not present on z/OS.  Documented problem in builds/zos/README.md with suggested resolution (ignore SIGPIPE).  Added `signal(SIGPIPE, SIG_IGN);` to setup_test_environment() in tests/testutil.hpp.

With these two changes 100 runs of the test suite on z/OS did not result in any (unexpected) failures.  Also appears to build and successfully run tests on Debian Unstable.