is_executable set errno to EACCESS rather than ENOEXEC.

is_executable was setting errno to ENOEXEC when the path did not have
executable permissions. This mimics the shell behaviour without parrot.
Sets EACCES also in 32 bits.
Reset break and heap address on brk error.
Do not divert execv to dummy.

As an optimization on entering, execv would divert_do_dummy when a file was not
executable, or did not exist. However, this would cause the value of errno for
the error message to be lost on the subsequent call to execv.
Avoid segfault when interpreter not available.

When the interpreter given by \#! is not available, parrot produced a message
with 'Unknwon error' and then that process segfaulted. Now it reports that the
intepreter was not found, and continues (as the shell does).