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.
Merge pull request #698 from hashstat/master

Add abstract namespace support for IPC sockets on Linux.
Merge pull request #699 from ezhikus/free_and_delete

It is safe to "free(NULL)" and "delete NULL"
Add note on Linux abstract namespace to ipc documentation.
Fix detection of abstract ipc pathname and length calculation.

Abstract socket pathnames must have a NULL character in the first
position, but the second character must also be checked to differentiate
an abstract name from the empty string.  The address length must also
indicate the length of the pathname because the kernel uses the entire
address as the name, including NULL characters.  ZMQ uses
NULL-terminated strings for the address, so the abstract address length
is the length of the string following the initial NULL byte plus 3; two
bytes for the address family and one for the initial NULL character.
Add tests/test_abstract_ipc to .gitignore.
Merge pull request #700 from hashstat/master

Add documentation on Linux ipc abstract namespace support and a bug fix.