Initial revision of the physical memory manager
Initial revision of the virtual memory manager
Merge branch 'master' into virt_memory
Kernel Linker script changed

The kernel linker script now supports a higher half kernel. It also
separates the prekernel from the kernel. The prekernel needs to be in a
low 32-bit address, the linker script handles this.
Updated prekernel that supports higher half addressing
Clears screen and calls the virtual memory subsystem
Needed to tell GCC to output better address code

GCC was assuming that the addresses were within 2GiB of each other. the
-mcmodel=large flag tells GCC not to make these assumptions. Also a flag
was added to the assembler for macro expansions.
These types reflect the x86_64 paging structures
Added a second qemu target

This target is for quickly making sure that the USB created is okay
Virtual Memory Sub-System Update

The physical allocator is coming along. It currently figures out all of
the valid physical RAM and then creates an identity mapping of it inside
of kernel space. The next step is to create the physical allocator.

The virtual allocator is not ready yet.

Stack is unfinished, but will eventually be the basis for the physical
memory allocator.
These are basic definitions for the virt_memory module
Fixed some bugs

Found some bugs while doing a quick code review
Fixed convert_octal()'s signature

There was a mismatch between int64_t and uint64_t, should be uint64_t
Fixed a bug with the pre-allocated PDT

My math was off and instead a better method was found to automatically
do it
Some of the math for the physical allocator was wrong

Fixed a bunch of math problems. Added invlpg support (not sure if
correct). Added a test to see if the physical allocator allocates
correct pages. Added some more definitions to the paging header.
Initial physical allocator and stack modules
Added a few more helper targets
Panic now disables interrupts and prints a message

It's a little weird because kprintf also calls panic if it has a
problem, but panic uses kprintf...
Added the NULL pointer definiton to inttypes
Added stack_size and 4KIB allocation code

The physical allocator should be complete now. The code needs to be
cleaned up and commented, but for the most part everything should work
fine. The allocator should also do all allocation and free operations in
constants time, which is nice.