[RDY] Move and refactor mch_can_exe to os/fs.c

Still addressing #281.

* Added formerly removed `static` declaration to `executable_file` which is now named `is_executable`. Thus I had to remove its unit tests, but it should suffice to test the public api mch_can_exe in that case.
* Tried to simplify mch_can_exe by extracting is_executable_in_path.
* Moved the definition of static helper functions below their usage. Thus one can read the code top-down more easily.