fix unixsockets

* reconnect now works properly with unixsockets
* the callback function passed to `socket.listen()` will
  return the `EADDRINUSE` if the attempt to connect
  does *not* result in `ECONNREFUSED`
* provide a callback to `fs.link()` when recycling the
  stale socket file (see [1])

[1]: https://github.com/joyent/node/blob/v0.10.21-release/lib/fs.js#L84