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.
No. Because I guarantee that I would never put a ```Term``` into hash-based container during the whole rewriting process. Once I have different hierarchies for mutable and immutable terms, this would look safer since the immutable terms will not cache their hashcodes.