Add ability to bind a random port

This was already possible, however, the bound port was nowhere to be
found except by reflecting through private objects
Add  test for BindRandom
fix local_thr output for large message size
Merge pull request #108 from kamlesh-patel/master

fix local_thr output for large message size
Merge pull request #106 from PSG-Sakari/master

Add ability to bind a random port
Catch up the Raw socket and Stream socket from Libzmq master branch.
Simplify Stream socket implementation.

from: https://github.com/zeromq/libzmq/pull/594
Another Stream simplification.

from: https://github.com/zeromq/libzmq/pull/595