msh: fix the case where the file has exec bit but can't be run directly
     (run "$SHELL $file" instead)
msh: fix exit codes when command is not found or can't be execed
     (with testcases)

diff --git a/shell/msh_test/msh-execution/exitcode_ENOENT.tests b/shell/msh_test/msh-execution/exitcode_ENOENT.tests
new file mode 100755
index 0000000..c886653
--- /dev/null
+++ b/shell/msh_test/msh-execution/exitcode_ENOENT.tests
@@ -0,0 +1,2 @@
+./does_exist_for_sure
+echo $?