Create server socket before forking instead polling until daemon is ready
Unlink socket only when daemon terminates

It's better to raise an exception in race conditions, instead silently unlinking
the socket in order to start the daemon again, and potentially overriding data.
Added a fallback for environments where UNIX domain sockets and/or fork() is not supported
Added config file
Install Chrome native messaging host only on Linux and OSX (the Chrome extension doesn't support Windows)