Move _fiber_fork to its own file.
Add DEBUG_EVENT features.

This allows us to track important events happened without introducing
extra synchronization (that comes with printf).
Do not inline try_join (it's on the slow path).
Cleanup the code. And it seems to have fixed #1.
Add atomic_inc/dec and compare_and_swap.
Add functionality to keep track of stack usage.