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.
This is needed only for tests, and memblock_alloc/free do not work after early init, right? So how does it work in tests?
If it does not work and we can get rid of kt_cache_destroy, then we need only two vars in the cache -- mutex and head.