Threads

Intro the `threads` module with support for POSIX threads, mutex and barriers. Also provides 2 ways to have thread-safe collections: refining existing collections and sub-classing them.

TODO:
* Complete the collection support.
* Modifiy `print` so that printing the user content and the new line is (generally) atomic
* Add more examples/use in real programs
* Reinforce error support.
* Fix compatibility with FFI's global refs.
* Add, when needed, GC_THREADS to `gc_chooser.[c|h]`
* Do not include `gc.h` when not using libgc

ping @egagnon
Oui. Il s'agit d'une couche Nity. La première instance de Thread sera créée avant même d'avoir une thread native derrière. Une autre pourrait être obtenue par un appel à `self_thread` par la nouvelle thread. Les deux sont identiques sans utiliser la même instance de `Thread`.

Il y a un problème avec le `==` sur les threads non lancées.