Rewrite recursive delete func
Rewrite recursive delete func

This no longer uses the complex syscalls to get directory entries.
It does, however, still uses a lot of manual syscalls directly.
This is required because the go functions either require a real filename
or unconditionally follow symlinks.

rminnich/u-root,u-root/u-root,rminnich/u-root,GanShun/u-root,hugelgupf/u-root,rminnich/u-root,GanShun/u-root,u-root/u-root,rminnich/u-root,u-root/u-root,hugelgupf/u-root,GanShun/u-root,hugelgupf/u-root,hugelgupf/u-root