Processor Cache Keys

Implementation for #671.

Processors (engines or transformers) MAY define a method called `cache_key` that returns a static cache key identifying the state of the function. (Method name maybe revised)

/cc @chancancode @elia