Refactor RuleProcessor to be a lot smarter

This steals most of the logic from the no_trailing_semicolons rule.
Now, this won't error on ==, etc. in strings or comments.