Add random port binding, and overriding range specification via extensions to endpoint syntax.

Added ! in addition to * for port numbers, and [<min>-<max>] notation to allow users to override the c000-ffff range currently set for ephemeral port
assignments. The ! instead of * means to randomly pick a port in the specified or default range.

The reason for this? I feel that, someday, maybe, someone will come up with a really wicked 0-day exploit against zeromq sockets. Because of the C000 thru
FFFF defaults, the obvious place to scan for zeromq ports is in the range of 49152 and up for maybe 50 or so ports. Using ! to select random ports will reduce
the success of such restricted searches. (And using psad wouldn't hurt, either). Just something to make life a little harder for the average hacker.