Coroutines

Started new frame work for data processing that will use coroutines as
flexible data processing modules that can  the easily linked and
branched to create complex decision tress. Coroutines provide a logic
structure that will support multithreading in the C++ implementation