Implement base VM frame system
Move file manipulation functions from process to syscall
Add supplemental page table and change process loading to lazy load
Partial stashed commit
Implement file-based demand paging.

Add swap.h and swap.c to provide facilities for swap-based demand paging
Add new files to Make.build
Change optimization from -O to -O0 and -g to -g3 -ggdb3 in Makefile.config
        for easier debugging
Add SPT cleanup for dying processes
Merge branch 'demand_paging' into p3
Modify naming for struct process_identifier and its members

Change struct process_identifier to struct process_descriptor
Change process_identifier::child_processes to children
Add next_mapid for struct thread to count memmap ids
Implement mostly functioning mmap and munmap

Refactor struct file_descriptor into syscall.h
Create struct mmap_descriptor
Create function for ptsupplement to delete entries
        -- Still requires swap support
Merge branch 'mmap' into p3
Implement swapping.

Fix mmaps not saving on exit
Change stack to be allocated as swap
Add page_fault_handler in pt_supplement for exception.c:page_fault
Implement stack growth.

Fix synch issue with new processes exiting before parent process can
        read return value.

Fix synch issue regarding filesys access from memory maps
Create function to unmap all of a processes open memory maps
Add unmap for all open mmaps upon process exit
Change syscall buffer validation to pass user addresses only.
Fix spt_page_fault_handler to accout for stack access.
Add user_stack member to struct thread to save the user stack pointer.
Change all allocations in process.c to use the frame allocator
Merge branch 'swap_stack' into p3