Pass --heuristic to kompile to slightly optimize pattern matching
Remove hybrid attribute and use structural matching to detect KResult
Discard events rather than printing them to stdout; eventually, we will just put them in a buffer and return them, so the I/O cost here is essentially irrelevant.
Contains 3 minor optimizations to the semantics: