Prototype k rewrite machine

I call it K rewrite machine but it's really just a simple interpreter so far. Eventually, this would become a a fast abstract rewrite machine and the starting point of native code generation.
this feels wrong to me. what happens if a rule is created at some point and this stuff isn't set? If a rule is transformed, will this info get out of date? why not compute this information in the kompile backend, after we've settled these concerns?