Merge pull request #8 from hintjens/master

Backporting fixes from master
Merge pull request #9 from hintjens/master

Cherry picking changes from libzmq master
Merge pull request #12 from hintjens/master

Backporting fixes from master
Merge pull request #16 from hintjens/master

Cherry picking changes from libzmq master
test for _MSC_VER before using MSVC specific code
WinSock2.h filename should be all lowercase
Add abstract namespace support for IPC sockets on Linux.

Converts an initial strudel or "at sign" (@) in the Unix socket path to
a NULL character ('\0') indicating that the socket uses the abstract
namespace instead of the filesystem namespace.  For instance, binding a
socket to 'ipc://@/tmp/tester' will not create a file associated with
the socket whereas binding to 'ipc:///tmp/tester' will create the file
/tmp/tester.  See issue 567 for more information.
Add test for abstract namespace support in ipc sockets on Linux.

See issue 567.