fully support IPv6 connections and run the ezmq test suite for v4 and v6
fix validate_address for raw IP when DNS is not working

gethostbyaddr can fail with error nxdomain when DNS is
not working. Raw IP are ok even when DNS is not working
to cat the nxerror and only check the IP address in that case.
validate options before passing the to the socket process

This allows us to throw badarg errors instead of crashing the
socket process.
implement controlling_process function

Erlang sockets have the notion of a process owning the socket.
Implement the same for ezmq sockets.
let the ezmq_link exit with normal on send failure

returning anything else than normal as stop reason from a
gen_server throws sasl error report. terminate is already doing
the sane thing, so returning normal is correct and avoids the
sasl error report.
fix crash on inet:setopts call

inet:setopts when called on a socket that has already been closed by
the remote end, will return {error,einval}. Handle that error and
terminate our side of link as well.
Merge pull request #23 from RoadRunnr/socket_options

various fixes and enhancements