Update pmm.c, pmap.c; Added asm functions; Renamed mm_types.h to mm.h

Implemented pmm_reserve function in pmm.c to mark pages used by the
kernel
Added _libasm.s which implements some basic functions only available via
ARM assembly
Renamed mm_types.h to mm.h
Partially implemented pmap_steal_memory
Update bithacks.c

bit_find_contiguous_zeros now searches the bitmap starting from bit 0 by
using rbit in conjunction with clz
Update pmap.c, string.c

Implemented memset, memcpy, and memmove functions in string.c
Implemented pmap_steal_memory in pmap.c
Update pmm.c

Implemented pmm_init which allocates memory for the array of pagemaps
and initializes the pagestack
Fixed bug in pmap_steal_memory

Fixed bug when calling PTE_CREATE, accidently passed in 'entry' variable
instead of kernel_pend which caused an incorrect mapping in the page
tables
Updated memset to set byte instead of uint32_t
Modifed ROUND_UP macro to NOT round up if already page-aligned
Update mm.h to include new macros to convert addresses to page numbers
and vice versa

Also renamed ROUND_UP and ROUND_DOWN to ROUND_PAGE and TRUNC_PAGE
Update pmap.c

Completed kernel_pmap bootstrapping
New file: vmm.c
I don't really know what is happening in this commit due to taking
such a long hiatus on this project :(
Added readme in tools and a .gdbinit file
Merge branch 'vmm'

Merge all the code that initializes the pmap system as this is not necessarily a vmm feature