Visibility fixer

Entirely rewrite fixer to use tokens instead of regexp, what fixes several problems in generated fixed code, eg functions _after_ class definition (mentioned in #332). Extends utests as well.
if you keep a state in the fixer to make it easier to implement the logic, you should reset the property at the end of the ``fix()`` method to let it release memory