Simplify ZMQ_STREAM socket implementation, part II
Merge pull request #595 from hurtonm/master

Another ZMQ_STREAM simplification
Merge pull request #596 from hintjens/master

Problem: mechanisms are lagging behind specs
Use generic session class whenever possible
Merge pull request #598 from hurtonm/master

Use generic session class whenever possible
Make last_endpoint attribute of socket object
Merge pull request #599 from hurtonm/master

Minor code refactoring
Merge pull request #597 from hintjens/master

Problem: working with binary keys is painful
Set socket buffers before establishing TCP connection

The window scale option carried in SYN segment is computed from socket's
receive buffer size. So we need to set this buffer size before calling
connect or bind.
Merge pull request #600 from hurtonm/master

Set socket buffers before establishing TCP connection
LIBZMQ-541 issue fix
Check socket types during mechanism handshake
Merge pull request #602 from hurtonm/master

Implement socket type checking
Merge pull request #601 from leewoosung/hotfixes/patched

[LIBZMQ-541] pub socket sending fail issue
Add new socket monitor event for when socket monitoring is stopped.
Fix montior tests to handle the monitor stopped event correctly
Fix cmake build
Fix build on windows, uint isn't a standard type, unsigned int is.
Merge pull request #604 from ricnewton/cmake_fix

Fix cmake build
Merge pull request #603 from ricnewton/master

Add monitor event for when monitoring is stopped so we can unblock any sockets waiting on monitor socket.
Fix tab/space formatting issue