Add a storage device

This is just the higher level device, sd, for storage device
I'll add the ata code next.

Plan 9 partitioning is different but far more sensible than PC
and GPT partitioning. Partitions have names,offsets, and extents.
That's it.

Normally, the bootstrap code reads the partition info and writes
it to the environment. From there, the drivers writes it to
the ctl file on startup (code commented out).

In our case, we'll need a small program to do
the same but it's trivial. This is what I used to do on coreboot
systems when we loaded Plan 9 from flash memory; in that case,
there was also no boot program.

The beauty of it is that we get simple, named partitions
without all the nonsense that is standard (and accepted)
in the PC world.

Both new files are under the Inferno license, which is GPL v2
compatible.

TODO: make the comment header more clear; I'll leave the wording
to you folks.

Signed-off-by: Ronald G. Minnich <rminnich@google.com>
Add the ATA support code.

From inferno. Needs some love from barret or kevin, but
the structure is there. Next is to bring in the
scsi block io and then once the TODOs in this are fixed
we can start getting local file systems.

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