Complete rewrite of style checks for performance (1 night -> 130 sec)

The initial version contained many visit  which could easily lead to
exponential behaviour.

The new version does not contain a single visit, but uses a custom visit
with "triggers" (= ast constructors) to start tracking certain
information.

Not completely done yet but rather fast.