execveat: fix compat version flag translation
execveat: pass empty string down the stack
execveat: make selftest more robust
execveat: build pathname like /dev/fd/%d/%s

A pathname retrieved via d_path() isn't reliable; instead, indicate
how the execveat was effectively constructed by using "/dev/fd/%d" (if
path is empty) or "/dev/fd/%d/%s".

As suggested by Eric Biederman.
execveat: Update selftest for new pathname

One extra case now works: invoking a deleted script via fd.
This now works because the shell binary attempts to load the
binary as "/dev/fd/12", which effectively dup()s fd 12 rather
than trying to find anything via the filesystem.