makes new typer and namer hooks more robust

Given that a hooked method is called `X`, there are now two implementations
of this method. `pluginsX` is defined in AnalyzerPlugins.scala and lets
analyzer plugins customize `X`. `standardX` is defined next to `X` and
provides a default implementation. Finally `X` is changed to trivially
forward to `pluginsX`.

Existing and future callers of `X` now can be completely oblivious of the
introduced hooks, because calls to `X` will continue working and will be
correctly hooked. This makes the infrastructure more robust.

The only downside is that in case when an analyzer plugin wants to call
into the default implementation, it needs to call `standardX`, because
`X` will lead to a stack overflow. However, in my opinion this not a big
problem, because such failures are load and clear + for every `pluginsX`
we actually provide documentation that says what is its standard impl is.