Update threads.c

(1) Hey so I moved a lot of our declarations to the .c file, and then I just increased the size, at least for testing, since we'll be getting function calls.
(2) Also, I think that we were missing a pointer to the stack in our thread structure.
(3) typedef fixes that weird struct thread problem we were having before
(4) I don't actually think we need to define the stack and frame pointers here, since I think we'll need them at dispatch time and yield time? I don't know, let me know what you think.
(5) I had the idea of runqueue that wasn't working, because I wasn't storing the first and last threads, I think this makes a little more sense.