Stop the EvolutionRule from being instantiated at every gridStep

Apparently, the compiler deemed the `rule` member unnecessary and instead saw fit to create and destroy the rule at every call to TMGas::gridStep, so we were throwing a lot of cycles at creating and destroying the same hash table over and over again.  Adding an extra level of indirection appears to have solved this, at least for Clang on my laptop. Let's see what the build system thinks of this change. This is maybe worth an SO post?