moved boot.S into arch/x86 and remove ASM_FILE macros
Moved arch-specific code out of mb_entry and into arch_startup()
Moved asm_style to x86/ and removed kernel.h
Moved errno and assert into lib/, removed debug dir (now part of kernel)
small cleanup of arch/x86

Starting to try and remove all the "x86_" on function names since
that will be needed for the arch/{file}.h architecture cleanup.
Changed vm_flags_t to int
cleaned up x86_ prefixed functions in cpu.c and startup.c
Removed machine_irq_interface kludge from kernel/irq.c
cleaned up x86 and mm virtual memory interactions

Removed lots of x86_FUNCTION_NAME kludge. Removed the many
ifdefs inlined in mm/vm.c. Cleaned up a bit of x86/vm.c code as
well.

Next step is to use a symbolic linking:

inc/arch -> arch/x86/inc

Then non-arch files can include <arch/FOO.h> and the symbolic link
will make sure they get the right architecture.
IMPLEMENTED ARCH HEADERS SYMBOLIC LINKING

This commit message is in all caps because this affects a majority of
the files in the kernel. To include an architecture-dependent header
file in your code you do:

\#include <arch/some_file.h>

And that file will actually live in arch/_ARCH_/inc/some_file.h

TODO: Replace iret_to_userspace with something better and give
get_esp() a different name.