Don't clone groups/rules unless monitoring

Cloning the rules on every test used a lot of cpu.
Validate inverted regexp rules
Create rule regexp ahead of time
Make cloneObject preserve the rule regexp
Use cached rule regexp

After cloneObject, evalGroup was another big time consumer. Reusing a regexp object is typically 4-5x faster than creating a new one each time, though the overall speedup is undoubtedly much less.
Merge pull request #6 from dtfinch/master

Performance improvements