make a pool allocator that speeds up the creation and destruction of vars

tests

more test

documentation

get rid of semaphore dependencies and make it run on stable

further:

make a library that provides STM wrappers over channels and IO to make it more useful

debugging utilities
