The following are done on Windows:
1) Daemon listens on a TCP socket on 127.0.0.1, and writes the address
to the sock file. Client reads the sock file and interpretes it as
a TCP address.
2) Daemon only forks once, with an environment containing the SystemRoot
variable (which for some reason is required for net.Listen to
function).
The code is far from ideal, but it works \o/
Logics of the main package is now in program/. Subprograms are subpackages of
program/. For instance, daemon/ is now program/daemon.
The daemon/service package is now simply daemon/.
The version string has been moved into its own package, build/.