Guard-traces are now stored in the form of a tree

Instead of storing a trace for each guard of each label, (i.e., a linear list of guard-traces for each label), these traces are now stored in the form of a tree: each guard-trace can have several other guard-traces as children, while each guard-trace itself is a child of some label-trace.