Added CPUID code from Bikeshed64
Initial virtual memory mapping interface

Created the paging.h file. This contains the definitions for the
functions used to manipulate the virtual address space. These
definitions should suffice for now as only one page table should be in
use anyway, the kernel's.
Initial virtual memory module

First implementation of the functions for manipulating virtual memory.
They are pretty straight forward and shouldn't contain any surprises.
Fixed symbol names to be all uppercase
Fixed initialization code

Before it was getting a duplicate mapping kernel panic. Now it only maps
valid regions, and unmaps pages if the machine has less than 1 GiB of
RAM, which is what the bootloader maps by default.
Initialize the virtual memory module