When running from the toplevel errors from Unix.create_process don't work

Somehow from the toplevel (but not from standalone executables) the
Unix_error thrown by execvp isn't caught properly and the process sits
around forever, rather than exiting.

Work around this by performing the $PATH search before we call execvp.
Obviously this isn't completely robust but it should catch the most
common failure mode: the command doesn't exist because the software
isn't installed.

Signed-off-by: David Scott <dave.scott@eu.citrix.com>