Removed FIXME in `ScalaSourceFile` (Refactoring)

I thought the only way to get rid of the FIXME was to introduce a
`NullResponse`, which is why I believed it was a good idea to extract a pure
interface from `Response`. As the code demonstrates, it turns out I was wrong in
believing I needed a `NullResponse`.

As a side note, while I think it may still be a good idea to turn `Response`
into a pure interface, I realistically don't see a use-case.  Further, it turns
out that implementing the semantic of a `NullReponse` wouldn't be
straightforward, because the current implementation of `Response` is somewhat
incorrect in my opinion. The issue I see is that a `Response`'s answer shouldn't
change after it is `set`, however this is not enforced in the current
implementation (e.g., one could call `set` and aferward `raise`, and the answer
to `get` would be different depending if it's executed before or after the call
to `raise` - I would consider this a bug). Hence, it currently doesn't make much
sense to turn `Response` into a pure interface.
SI-8151 Prepare for removal of -Yself-in-annots

Upstream, Scala will remove the `selfsym` field from `AnnotatedType`.

This commit removes its uses in Scala IDE:

  1. In debug printing code
  2. In a commented-out pattern match
Merge pull request #627 from retronym/topic/annotated-no-self-sym

SI-8151 Prepare for removal of -Yself-in-annots
Merge pull request #619 from dotta/wip/remove-fixme-in-scala-source-file

Removed FIXME in `ScalaSourceFile` (Refactoring)
Reformat old code.
Catch `JavaModelException` if a resource isn't there.

This code might be called for elements that were deleted. The original
code tried to be robust, but failed to treat checked exception `JavaModelException`.
Use the presentation compiler to check for existing types.

The original code relied on Java search, that can be slow and imprecise
for Scala types.
More robust handling of parse errors in formatter.

Return an empty mixup, rather than null.
Removed non-functional code for code generation.

Removed support for generating stubs for constructors
and inherited abstract methods:
* the UI doesn't show the section anymore
* ported constructor stubs to the presentation compiler, but
  disabled. Someone motivated could pick it up (works for simple cases).
* deleted code based on JDT type hierarchy for implementing
  inherited abstract methods.

This should fix JavaModelExceptions on class creation.

Fixed #1002006
Merge pull request #625 from dragos/issue/fix-new-wizard

Fix New Class Wizard JavaModelExceptions