file descriptors

lots of additions to get basic file descriptor functionality
added a list of open files to each thread
file struct also includes its file descriptor, and a list_elem

system calls now store new files in this list, and ask for the file given a file descriptor

testing needed!