Refactor SpaceAroundOperators

This is a complete rewrite. I have tested it against a large code base (all my installed gems), so I feel pretty confident that it can replace the current version. I think this code improves readability and maintainability.