Support clocks for sync objects

A race still may happen after a few test set runs (in case the same slab object will be used), since completion variables are not handled yet.
variables that are not intended for caller of ENTER/LEAVE must be prefixed with something
these are macros, so the vars spoil caller namespace
thr and pc are intended to be accessed by caller (and are part of "public interface" of ENTER/LEAVE), flags and inside are not