Show simple names instead of fully qualified names in quick fixes

Add a type printer for Scala compiler types.

This code follows closely what toString does in the Scala compiler, except
that it won’t print fully-qualified names. Most of the times, FQN are a nuisance
inside the IDE: They add clutter and little information, and when used from
quick-fix (add explicit type or implement abstract member), they need to be
manually removed.

* switched *add explicit type* to the new printer
* switched *implement abstract member* to the new printer

TODO:

* use the new printer in hovers
* use it also in the Outline view

PS. I'm happy to let someone else improve/work on this, I won't be able to come back to it very soon.
Not sure which one is that. If its `scala.reflect.internal.Printers.TreePrinter`, it uses toString:

```
        case tt: TypeTree =>
          if ((tree.tpe eq null) || (printPositions && tt.original != null)) {
            if (tt.original != null) print("<type: ", tt.original, ">")
            else print("<type ?>")
          } else if ((tree.tpe.typeSymbol ne null) && tree.tpe.typeSymbol.isAnonymousClass) {
            print(tree.tpe.typeSymbol.toString)
          } else {
            print(tree.tpe.toString)
          }
```