Some things to note:
- Are the warn*()/err*() calls appropriate here? DTrace's xywarn() and
dt_handle_liberr() are not really want I want.
- dt_sugar_kinst_find_caller_func() has x86-only code, we'll have to visit it
again when kinst is ported to new platforms. Perhaps an #ifdef would be
better than splitting the code into multiple files.
- The new struct and global variable names might need to be changed.
Bugs I noticed so far:
- Predicate `/self->ts/` gives a segfault when more than one newly generated
clauses have it.