Initial commit

When executing label-traces, the call/cc stack is no longer used to jump to the next continuation. Instead, it just returns.
When a guard fails, all trace-frames on the execution stack that are an ancestor of the trace that failed are removed and the next continuation is called.
Temporarily commented-out trace merging to simplify debugging
Changed implementation of run-trace

run-trace now returns the value of the last instruction that was evaluated.
This is useful because if this last instruction was executing a non-looping trace, the value returned will be the new state to restart the regular interpreter from.
Changed behavior of guard-failure when interpreter is already tracing

If the interpreter is tracing and during this tracing a trace is executed, but which is aborted by a guard failure, instead of continuing recording the trace, the trace buffer is cleared and the interpreter starts tracing for the guard that failed.
Debugging
Only call pop-trace-node-frame-from-stack! in a guard-failure if the guard-trace doesn't loop

Also move this instruction into the trace itself, instead of outside it, in execute-guard-trace
Revert "Only call pop-trace-node-frame-from-stack! in a guard-failure if the guard-trace doesn't loop"

This reverts commit 93402d3029f16892dfda9654ddaed67f4504740f.
Revert "Debugging"

This reverts commit fe8babdbb45bdac821e3f77eb30562de5fb93ea3.
Updated   pop-trace-node-frame-from-stack!

If the trace-nodes-executing stack is empty, this function just returns immediately
Bugfix: added trace-node-frame-on-stack?

A test to check whether the first label- or mp-tail-trace that is encountered while traversing the trace-nodes-executing-stack has a specific label.
Converted to proper syntax

Changed let to let* and desugared named let
Uncommented trace-merging in step*
Changed implementation of execute-mp-tail-trace

The continuation-calling strategy was changed: it just returns a value now instead of calling a continuation from the continuation-stack.
Bugfix for make-guard-merges-cf-function

A different trace-transform-function is called: one where no remove-continuation is done or a new-state is returned, since this is already done in the mp-tail-trace that will be executed.
Bugfix for make-label-merges-cf-function and make-mp-tail-merges-cf-function

The same bugfix is applied on these two functions as was applied in the previous commit on make-guard-merges-cf-function
Updated behavior when encountering merges-cf annotations

Instead of always calling (step* (ko phi k)), call step* with the appropriate argument: either (ko phi k) or the state returned after executing the mp-tail-trace
Reverted implementation of execute-mp-tail-trace!

execute-mp-tail-trace! now uses the same implementation again as it did orinally: push-trace-frame!, execute trace, pop-trace-frame! and follow the top-continuation.
This should work... hopefully
Wrapped everything in a begin-expression
Debugging
Merge branch 'Alternative-continuation-calling-dev' into CK-machine