Add empty signals to Socket types to force them to show as named in qDebug / console.log

--HG--
extra : amend_source : 3ff6c867e4b0412d85d8911fad3afd6c669c0507
Add test for ZReq/ZRouter
Change the way null terminators are handled by low-level ZMQ IO.

see http://zguide2.zeromq.org/page:all#A-Minor-Note-on-Strings

It is assumed that strings sent down the ZMQ wire do not have null terminators.  If a null byte is at the end of the string (or anywhere else in the string), it is interpreted as a "real" byte - part of the string.

For practical purposes in this application, it means that received strings are to (ignoring precent encoding) yield a QString with length equal to the zmq count (with no null terminator).  However, the QString tracks length and does not need a null terminator.  On the way back out, these messages are again sent down the zmq wire with same count as the one tracked by the QString
Add timeout to wait statement to print warning with thread id when rogue zmq threads fail to stop when they should.