Preparing to Overhaul Pointer Use

Added string type and list type (incomplete). Preparing to change
references from uintptr_t and uint32_t* to void* in many places and use
the new list type to implement the linked list of pages.