Made various changes to the bookkeeping of the tracer-context

Simplified some operations by removing the labels-executing stack: the heads-executing stack is now used to store which label-trace is being executed.
Guard traces are now labeled only with their guard-id, which is relatively unique with their parent label-trace.
When measuring trace-duplication, only the full path of the label-trace (so a label, or a path from some guard-id to some label) being executed is stored.