Make it so the fread and fwrite calls dont block

This required some changes to the bsic infrastructure of syscalls, as well as
some small changes to the existing read/write calls.  I also removed close as
a syscall that we override.
Add the likely / unlikely macros
Update internal_pthread_create to take stack_size

This change is in preparation for moving to a model where we don't actually
rely on pthreads underneath, but instead use clone and mimic the necessary
parts of a pthread in order to trick glibc into thinking we actually have
a pthread.