The PrologMachineCopy field in ProjectState was an obtuse way of
upgrading the weak reference stored in the RulesCache to a strong
reference. Now that RulesCache stores strong references on its own, we
can just call into RulesCache at exactly the time it's needed, namely in
PrologRuleEvaluator.
Moving this out of ProjectState helps with untangling the cacheable and
non-cacheable pieces of this class; for context, see:
https://gerrit-review.googlesource.com/c/gerrit/+/167053
Change-Id: I4beda2c9ddcf0014c606c0bee01ec49dde419361