Fixes for FFI callbacks in SBCL

After adding threads into the Windows port of SBCL there were some errors in the way Lisp callbacks worked when called from the C code: when running Lisp code in a callback the thread had its gc_safe flag set. This flag means that this thread is in a section of code that is safe regarding the garbage collector and that it promises not to touch the Lisp heap. But this invariant is clearly violated - so callbacks should clear this flag and check whether the thread should suspend to ensure safe garbage collection. And similarly, when returning to the C code we should set this flag and check the thread suspension predicate.

The fixes are in github and the fixed binary is at http://sites.google.com/site/dmitryvksite/sbcl-distr/sbcl-1.0.36.16-threads-2.msi.

The next thing on my list is to fix the read-char-no-hang function for Windows sockets.