Move lazy decomposition tree traversal to utils.
Refactor pipeline. Use current pipeline implementation as a driver and move executor and driver communication mechanism to pipeline. Executor is now running as a thread.
Fix test.