Command are now stored in ypipes instead of in socketpairs

This is pulling in a fix from upstream.  It looks a lot bigger then it is because I had to rerun autoconf, and that changed a lot of files.  The files you actually want to look at can be seen here

https://github.com/zeromq/libzmq/commit/7c0c79812075459765440ca26bad56f4f7ddbe52

I also had to put in a small bridge between the bool _block in mailbox and the int _timeout that the new code expects.  I did this based off of the code in

https://github.com/zeromq/libzmq/commit/d7923f08cab62ef40027a92f596ff45428870838 

where block was changed to a -1 and non-block was set to 0.

Storing commands in OS socket buffers caused whole lot of
problems when free space in the buffer ran out. This patch
stores commands in ypipes instead and uses socketpair just
to signal the other thread, ie. at most one byte is stored
in the socketpair at any single instant.

Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

Conflicts:
	src/config.hpp
	src/mailbox.cpp
	src/mailbox.hpp