Added propper malloc and free, fixed longstanding bug in the virtual memory mapper and in physical mark free.

Not the fastest malloc but works without fragmentation.
Virtual memory manager removemap now working, addmap nolonger allocating a page for every page mapped.
Physical memory manager was using wrong label to determine end of kernel space, resulting in it thinking kernel space was from 0x1000000 all the way to somewhere in the kernels virtual space