Safepoints for thread suspension

It was significantly easier to implement thread suspension on Windows using the safepoints rather than using asynchronous signal processing. The lack of them on Windows (which is a controversial topic when comparing Windows APIs to Unix APIs) made it significantly harder. The implementation of safepoints for SBCL was independently done by Paul Khuong (http://repo.or.cz/w/sbcl/pkhuong.git/shortlog/refs/heads/gc-safe-points) which I gladly took as a basis. The GC-polling code in the safepoints is not yet optimal, though.

For now, the garbage collector does not correctly support having code regions that don't participate in the garbage collection process - that is, code that blocks or calls the foreign code.

And, of course, the optimizations are to be done.