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.