boot.asm: Start rewrite
boot.asm: Complete rewrite

The two parameters main expects don't function yet.
boot.asm: Minor fixes

Clear PML4 page.
Properly clear pages (off by 24(!) error)
boot.asm: Recursive map page tables

PML4[510] = PML4

This recursively assigns a virtual address to every page table (pdpt, pd, pt).
mem.c: Add map() function to map arbitrary pages.

Needs rewriting, but it works!
mem.c: Clean up page table walk logic

Convert the ugly hardcoded addresses to a function which shifts the
entries to the correct positions. Also makes the code slightly more
robust against the recursive mapping number changing.