case module toString is synthetic
Support functions with refined types in uncurry.
Keep annotations when computing lubs

Integrates annotationsLub into lub.

Also fixes SubstSymMap when mapping over annotaion trees. I don't understand what the previous
code was supposed to achieve, but it crashed in some of my examples.
namer refactoring

will fix comment later.

hoock for annotation checkers to assignType (when the type of a val or def def is inferred)

allow annotation checkers to modify the expected type before type-checking a tree

Allow annotation checkers to hook into Namers.typeSig

Replaces the previously added hook `assignAnnotationsToTree` by the more general solution
`typeSigAnnotations`. This hook is invoked whenever the type of a signature (ClassDef, DefDef,
etc) is computed by either parsing the annotated type, or by computing the righthand side's type.

Minor cleanups in AnnotationCheckers.scala

allow annotation checker to be active in selected phases only

hook for annotation checkers to modify getter / setter types

namer refactorings, analyzer plugins

includes test for fixed SI-1803
analyzer plugins

will fix comment later.

hoock for annotation checkers to assignType (when the type of a val or def def is inferred)

allow annotation checkers to modify the expected type before type-checking a tree

Allow annotation checkers to hook into Namers.typeSig

Replaces the previously added hook `assignAnnotationsToTree` by the more general solution
`typeSigAnnotations`. This hook is invoked whenever the type of a signature (ClassDef, DefDef,
etc) is computed by either parsing the annotated type, or by computing the righthand side's type.

Minor cleanups in AnnotationCheckers.scala

allow annotation checker to be active in selected phases only

hook for annotation checkers to modify getter / setter types

namer refactorings, analyzer plugins

includes test for fixed SI-1803