Fix `free_all_mem` and EXITFREE definition

Because of the '$' in `if(DEFINED $ENV{VALGRIND_CHECK})` EXITFREE wasn't being
defined, so the `free_all_mem` wasn't being included or called in the resulting
binary.

This commit fixes that, and also adds includes needed for `free_all_mem`
compilation.
Fix memory leak in `eval7`
Add another unit test to mch_can_exe.
Move mch_can_exe, executable_file to os/fs.c.

* Rename executable_file to is_executable.
Declare is_executable as static and remove its unit tests.

Testing the public interface mch_can_exe should suffice. Every former
test of is_executable has a counterpart in the tests of mch_can_exe.
Thus we can keep private things private.
Simplify mch_can_exe extracting is_executable_in_path.
Move definition of helper function below their usage.
Remove unused return values.
Fix bugs, clean code, add tests.

* Add const specifiers, update comments, add assert.
* Move os_unix.moon tests to os/fs.moon + clean tests.
* Add uv_fs_req_cleanup call.
* Add tests with absolute paths to mch_isdir.
* Add to_cstr to test/unit/helpers.moon and fix respective unit tests.