Construct a struct image_args with the help of new exec_args_*() helper
functions and call kern_execve().
The previous code mapped a page in userspace, copied arguments out
to it one at a time, and then constructed a struct execve_args all so
that sys_execve() can call exec_copyin_args() to copy the data back in
to a struct image_args.
Unlike sys_execve() we don't call pre_execve()/post_execve() as we don't
need to worry about killing other threads in an old process.
Obtained from: CheriBSD
Sponsored by: DARPA, AFRL
Depends on: D15468