Major things:

* Linux device driver support.

* FreeBSD device driver support.

* ODI network device driver support.

* File system interpretation (rip from Mach4 or GRUB).

Minor nits:

* Make the stuff in crti.h depend on at least one symbol
  defined by crtn.o, so that crtn.o can't be accidentally left out
  causing really weird runtime behavior.

* multiboot.S: C++ constructors and such currently get called
  before multiboot_main initializes the base environment.

* __main.c: ctors/dtors don't get called AT ALL when using non ELF.
  This is because we define __main() to do nothing. __main() is
  normally in -lgcc.

* gdb_pc_com_intr doesn't work.  jmp base_trap_handler is wrong,
  and for some reason the interrupt never arrives in the first place.

