kernel: fix execve after pivot_root via vfs_lookup_initrd(); fork execve test
pivot_root changes the global fs_root and '/' mount entry to a tmpfs,
which breaks subsequent execve calls because vfs_lookup('/bin/echo')
fails in the new root. This caused the 'echo execve' flaky test
failure (it always failed when run after the pivot_root test).
Fix: save the original initrd overlayfs root at boot and add
vfs_lookup_initrd() which does a direct finddir traversal from that
saved root, bypassing the VFS mount table. Use it in:
- elf32_load_user_from_initrd (binary lookup)
- elf32_load_interp (ld.so lookup)
- elf32_load_shared_lib_at (libc.so lookup)
- syscall_execve_impl (early ENOENT check)
Also change the execve test to fork a child (like execveat), so PID 1
is not replaced and the test harness can verify the output.