Modified execution engine such that blocks are guaranteed to be called in topologically sorted order.
This fixes an intermittent bug that occasionally showed up in graphs that had blocks whose inputs took
turns providing data at alternating timesteps.
Added a trace mechanism which obviates the need for a global variable to aggregate a list of "visited blocks".