Fix page fault in kern_process_exec()

The program path copied from userspace was being reused as the new process
name and then set to NULL to prevent it from being freed, but it is needed
by process_entry_thread().

Signed-off-by: Alex Smith <alex@alex-smith.me.uk>
POSIX: Fix incorrect errno from execve()

The errno set by access() was being overwritten so errno would end up
being EACCES if the specified path could not be found.

Signed-off-by: Alex Smith <alex@alex-smith.me.uk>