Replaced the guards-id stack that is used in trace-merging with a splits-cf-id stack

Instead of storing the id of the guard that caused the split, we now store the id of the splits-cf annotation that is placed right before the guard.
This should make it easier to apply trace-merging after e.g., cond-expressions where a single cond-expression is translated to multiple guards (one for each branch), but where the merge-point is the same for all these branches