Added some comments to the APIC code

The APIC is not being used at the moment.
Fixed a silly bug in virt_map_page

Swapped the if conditions for PAGE_LARGE/PAGE_SMALL
Fixed possible overflow and underflow bugs
Moved the stack from the x86_64 to generic kernel
Added simple block allocator
Added a simple Queue object
Added a simple water mark allocator
Added a runtime assert macro
Added a water mark kernel allocator

alloc.c will also initialize any other kernel allocators that may come
in the future
Added calls to the scheduler and alloc functions
Initial scheduler module, contains PCB defintion
Added kprintf definiton to the general kernel
Added some comments
Added external definitions for virt_memory functions
Added comments to panic