Created constructors for trace-key structs

There are now three different constructors, one for each element that can be traced: a normal label, a guard and an mp-tail