Added various device files to disk image
Cleaned up various things, refactoring, signals

Most importantly, got a first draft of signal support, messy but close
to working, got signal handlers as a separate struct, factored out file
info into a separate struct.
Refactored fs to point to new files struct
Added headers from musl, various other changes

Various refactoring of structs, including thread files and signals,
changing functions so they use our kernel info struct instead of the
multiboot header, added a table of syscalls, added the uthash/utlist
header library for convienence. Most new files are from musllibc since
that is the preferred libc for user space, and the headers are public
domain.
Various changes and refactoring, needs work
Factored out multiboot stuff, kmain is now clean

Moved multiboot stuff to a separate file, kmain is now clean of x86
specific stuff.
Small internal changes, new printf
Small change, need to remove multiboot dependence
Rescoped global to avoid conflict, needs to be renamed