Add unit tests for mch_isdir.
Remove static declaration of executable_file.

Since static functions are only visible in the file in which they are
defined, this needs to be done in order to unit test the function.
Add unit tests for executable_file and mch_can_exe.

Caution: There is a pending test which should be implemented.
Port mch_isdir to libuv.
Implement pending test.