Added a simple memcmp
Added code to find the ACPI RSDP
Added ACPI table structures
Remapped the boot memory to allow 4GB physical memory access
Added most of the APIC initialization code

- I moved the acpi.c file to cpu.c and moved the acpi headers to cpupriv.h
- Most of the ACPI and APIC code is now complete
Added the CPU initialization code for other processors
Set the MP flag in CR0
Moved CPU initialization code into boot directory
Moved some non init code back into cpu.c
Enable global pages after CPUs have initialized

- This is so that pages for lower memory (around 1MB mark) are not cached
  in the TLB as global.
Moved IDT initialization into C

- Also renamed trap to intr
CPU Initialization Bug Fixes

- Invalid TSS GDT entry
   cpupriv.h 85
- Search for RSDP advancing by 20 bytes instead of 16 bytes
   cpu_init.c 47
- Typo in check for ACPI header (was checking against rsdt entry
  instead of mast  entry)
   cpu_init.c 94
- Initialize the APIC during AP entry
   cpu_init.c 260
- Load PML4 address in AP entry
   cpu_init_asm.s 96
- Using eax in getting the APIC id in AP entry corrupted the
  id (using rax now)
   cpu_init_asm.s 127
- Use mov with offset statement to get the offset of a symbol
   cpu_init_asm.s 168
   start.s 149
- Filling too many page tables on startup
   cpu_init_asm.s 100