Directory reads now almost work.

This is going to be messy.

Plan 9 returns directory reads as a stream of endian-independent,
byte-order-independent records. Variable-length strings are prefixed
with a 2-byte length. Conversion is done in user mode in a library.

Why do this? Because you can import a name space from (e.g.) x86 to
(e.g.) power pc. Since directorys are read just as files are, the kernel
ensures the output of a directory read can be parsed on any machine.

How do you seek in such a thing? Differently than on Unix.

Linux, as befits its Unix heritage, returns directory reads as a string
of host-dependent (i.e. endien-dependent, byte-order-dependent) records.
So how to tell Linux/Akaros how many 'kdents' were read? Have to figure that
out.

But, for now, we're pretty close to having directory reads done, and I just
fixed a bug of my own making in the conversion functions, so a push
at this point makes sense.

All this said, I think the concept of "opening" a directory is dumb. You're
not going to write it, managing 'seeks' is a mess, always has been. The Go
library makes it simple: here's a path, give me back a channel that I read
dirents from. No pretense that it's file I/O is attempted. That's smart.
Directories are not files.

Signed-off-by: Ronald G. Minnich <rminnich@gmail.com>