Test demonstrating wrong hyperlinking on metod w/ default arg

This test demonstrates that the Tree returned by `askTypeAt` is wrong when the
request is executed *after* fully-typechecking the sources used for the test.

I've debugged the problem inside the Scala IDE, and the reason why this happen
is that `askTypeAt` returns the enclosing `foo` DefDef method symbol, instead
of the expected Select `Bar.bar` node. The enclosing method is returned becuase
all Trees inside the method block have a *TransparentPosition*, all the way
down. The impelmentation of `askTypeAt` relies on
`RangePositions.Locator.traverse` to return the deepest, non-transparent, tree
that includes the passed position. And, because all positions are transparent
inside the `foo` method's body, then the `foo` symbol is returned.

An additional interesting fact is that it looks like one of the transformation
happening during typechecking is to blame for updating the Tree with the wrong
kind of positions. In fact, if the source file isn't typechecked, the correct
symbol is returned.

Enable the test once https://issues.scala-lang.org/browse/SI-7915 is fixed

Re #1001921
`ScalaPresentationCompilerProxy.apply` should never return `Some(null)`

The former implementation of `ScalaPresentationCompilerProxy.apply` could
return `Some(null)` if the passed `op` returned `null`. This was not the
intended semantic.

A different issue I'm thinking about is how I can provide an overload of
`ScalaPresentationCompiler.apply` to allow to pass either an `op` of type
`ScalaPresentationCompiler => U` or `ScalaPresentationCompiler => Option[U]`.
The simplest way to do so would be to have two different methods, but I want to
think about this a bit more (in fact, I'm still not convinced we shouldn't
simply keep the current implementation).
Merge pull request #569 from dotta/issue/wrong-hyperlinking-1001921

Test demonstrating wrong hyperlinking on metod w/ default arg
Merge pull request #571 from dotta/issue/do-not-return-some-of-null

`ScalaPresentationCompilerProxy.apply` should never return `Some(null)`
Splitted side-effecting logic from pure computation in `ScalaCompletions`

Created two nested method `typeCompletionsAt` and `scopeCompletionsAt` to
clearly separate the side-effecting logic from the pure computation in
`ScalaCompletions`.
Don't add parameter list on import completion for module's methods

Also, added ignored test for Re #1001919

Fixes #1001125
Added explicit 'override' in `ScalaCompletions`