Large paging/vm/physmem cleanup (read on)

Removed all "bootstrap" code for virtual memory. Paging is now
enabled in boot/boot.S via a clean and small assembly function and
takes advantage of the x86 4MB pages feature.

Deleted vm.c: The interface and design of the virtual memory system
needs to be redone. I just deleted all code (it wasn't being used
anyway...). I left vm_flags_t because I know we'll need that. I also
left most of the x86 vm code (arch/x86/vm.c).

Deleted physmem.*, replaces with memory.* and pages.*.

  pages.*: Physical page management. This system manages all
    pages on the system. We can later break it into zones via
    an abstraction over this if we want to.
  memroy.*: Mostly memory.h, which contains many useful memory
    related symbols. Also memory.c initializes some variables using
    the informative multiboot_info struct.

All the other changes are essentailly side-effects of the above
changes. Also, I am try to move away from the "everything function
with init in the name must return an int error code" pattern. In
the system startup code this is really annoying to deal with especially
because many of the functions can't fail... Obviously, if a function
can fail it must return an int, but having startup functions always
return 0 is just silly.