Use full path to executable in Daemon.spawn
Summary: `argv[0]` is not always correct enough to find the binary. One repro we've found so far is when you have an unexpanded `~` in `PATH`, e.g. `PATH='~/flow/bin/':/usr/bin flow ...` (note the single quotes). Bash does expansion to find `~/flow/bin/flow`, but when ocaml reads `PATH`, it just sees `~/flow/bin/` and doesn't do any expansion, so can't find the executable.
`Sys_utils.executable_path ()` does the expansion.
One concern is that this may not be Windows compatible. However, switching to `Daemon.spawn` caused flow to regress because of this, so we should probably fix it and then unbreak Windows if necessary.
Reviewed By: @gabelevi
Differential Revision:
D2412005