zlib: Manage flush flags appropriately

If you call z.flush();z.write('foo'); then it would try to write 'foo'
before the flush was done, triggering an assertion in the zlib binding.

Closes #4950
test: Don't fail tls-session-cache if openssl is bad
test: Make stream2-transform less timing-dependent
core: Append filename properly in dlopen on windows

Fixes simple/test-module-loading on win32
test: Sending dgram sockets to child procs not supported on windows
test: Trim cat output for windows
test: Use copy instead of symlink in child-process-fork-exec-path
test: Don't run async operation in process 'exit'

Also, this seems to occasionally cause some annoying file-locking
errors in Windows.  Not sure if this is the best fix, but it seems
to make the warnings go away in that spot.
test: Kill zombies when debugger-client fails on windows
test: Fail faster in simple/test-cluster-bind-twice-v2

Crashing on windows, but at least now it's a crash rathert han a timeout.