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.
move a line back to the right spot; make sure all sockets get destroyed

I moved the call to zsocket_test up ahead of the gossip call, because
I was using an old version of libzmq; I upgraded and am moving it back,
gossip's test runs OK now.

I was getting a couple of leaked socket message from the test. These
are corrected now.
zdlist: Indentation: convert tabs to 8 chars
zdlist: add spaces before (
zdlist: blank line before method declaration
Merge pull request #607 from Q-Leap-Networks/pull-zdlist-style-fix

coding style fixes for zdlist
Added zdlist man page

Hint: "./mkman zdlist" in doc directory creates or updates one man page.
To update all existing man pages, "./mkmans".
Whitespace fixes
Problem: free_fn and dup_fn API is inconsistent

Solution: remove free_fn from constructor and add explicit methods
to set free_fn and dup_fn on container. This makes the API look more
regular and simpler if you don't use these hooks.
Problem: zdlist API is a bit complex

Apologies if this patch removes functionality that's needed. Mainly I
made next/prev symmetric and then removed the head/tail methods which
are redundant with first/last. Then, as there are two conflicting API
models (iterator, and node), I removed the node API part. If you need
a structure with direct access to items, you'd use zhash. Finally, as
we're allowing free_fn on items, it makes no sense to return an item
value on pop/remove. Oh, and I added an insert method, empty for now,
to insert after cursor.
Fix compilation error in OSX.

Due to -Wall -Werror, the compiler complains about lack of newline at
the end of file.
Merge pull request #611 from ahhentz/bugfix

Fix compilation error in OSX.
Merge pull request #608 from hintjens/master

Added zdlist man page
renamed method '_count' to '_size' as rfc 21 dictates
fix zeromq/czmq#609 : Changed zloop timer to use fixed interval from start of loop instead of current time plus interval
Problem: zdlist isn't very communicative

Solution: use zring as class name
Merge pull request #612 from sappo/master

Renamed zinterface method '_count' to '_size' as rfc:21 dictates
Merge pull request #613 from poljvd/master

fix zeromq/czmq#609
Merge pull request #614 from hintjens/master

Problem: zdlist isn't very communicative
Deprecated zlist_head/tail as useless

I've not seen any code using these, so am deprecating them. If you
feel strongly about this, feel free to revert this commit.
Allow PING in all external states
Merge pull request #616 from hintjens/master

Deprecated zlist_head/tail as useless