Got the allocation working with multiple lists of unallocated memory.

Deallocation is currently broken.
Made deallocation work with the list of list of unallocated memories.
Made a common method for adding to the unallocated list of lists.