Clean up operator table

There are a few changes, the main one is cleaning up the operator matching. It has a lot less false positives now (previously waay too much matched). It also fixes a few things like the `!` in `foo!(...)` is no longer matched as an operator.

There are a few other minor changes. Please let me know if there is something you do not agree with :).