Optimisation for CachingRewriter.
Optimisation for CachingRewriter.

The caching rewriter was forcing a cache lookup for a rewrite state,
even in the case where we new nothing had changed because the given
rewriter rule actually hadn't applied.  This happens when a rule fails
to apply because of an (unhoisted) conditional check.

Whiley/WhileyRewriteLanguage