We need base >= 4.6

System.Environment.getExecutablePath was introduced fairly recently.
Support cygwin, fixes #48

Support path separators other than '/', and executable names other than
"hawk", such as "hawk.exe".