add coroutines.c from Alan
split coroutines into lib and main
yield N times per process
introduce typedef, remove spurious parameter
add process id reuse
add valid pid function and run until pid is done
pass a parameter to coroutine
implemented channels