Converts between 9ns and VFS stat structs

We still have lots of issues with different meanings for flags and
whatnot.  For instance, we convert st_mode for directories, but don't
convert any of the other 9ns flags.
Open mode checks, don't use == for OREAD

There's a disconnect between omode and the access bits part of the VFS
open flags.  Don't simply check for equality of OREAD.

I didn't want to change omode higher in the stack (to do so, we can pass
it through the poorly named 'openmode').  I wanted to keep the vfs_flags
info around as long as possible, in case lower layers want to make use
of that info.

Btw, OREAD's value is 0, which means we can't check for the bit.
Fucking terrible.
readdir() kdirent hack

When reading directories, we need to deal with kdirents for userspace.
Once we get this working, we can put all the convM2kdirent business into
glibc.
Handle file creation

Unlike in our nxm port, we handle it in syscall.c.  Aside from it being
easier, inferno's create takes the third parameter (file mode in VFS,
perm in inferno).  We weren't doing a good job in nxm of dealing with
file creation modes either.

Anyway, this gets us into a dev's create method.  Now we need devices
that don't just error out on create.
Busybox errstr on create

They have a different error path in ash for creations, so we had to
patch it.  I like this one a bit more than the bb_error crap, since I
can choose between errno strings and errstr.

To apply, cd into your bb directory and patch -p1.