tests work! unstupided syscall_handler, and also added esp checking

got rid of the boneheaded thread_exit and the end of syscall_handler....

also, added a check macro to check whether esp plus the last arg will overrun the page.  if so we call exit(-1) (which is now a helper cuz it'll probably be used a bit...)