Non-determinstic Turing machine simulator. The idea of this program is to use backtracking to execute the simulation, but instead of using recursion, it saves the content of the stack on the heap, and uses a leaf function.