I've changed the design of fdesc to be mounted on /dev/fd instead of being a union mount on /dev. Since we already have the nodes that fdesc duplicates (std{in,out,err} and tty), there's no reason to bloat and complicate the code by reproducing them. The code itself looks clean, but there's still the issue of making a unique inode number for each file. This puts the code in a generally much more readable state as well.
