use domain socket on remote side

* preparation to complete switch to domain sockets
** pro: don't need port forwarding
** pro: easier to avoid collisions
* added socat dependency
* added lock for ipc endpoints (zmq unlinks domain socket before
  binding, effectively allowing the 2nd bind silently supersede
  the 1st one)
* fixed SIGCHLD compression bug