Lazy retrieval of Java parameter names in completions.

When a completion is selected we need to show the parameter names as placeholders.
If the method comes from Java, we need to retrieve the Java element, a potentially
long-running operation that can trigger the structure builder. Instead of retrieving
all parameter names eagerly, for each completion proposal, we delay it to the
moment a completion is selected and inserted in the editor.

Fixed #1001560, #1001497.
Add string literal completion

This also adds the behavior that \ and " signs inside of string literals
are automatically escaped since they would cause compiler errors
otherwise.

Fix #1001398
Add character literal completion

As for string literals, \ signs are automatically escaped to prevent
compiler errors.

Furthermore it turned out that the current partitioning strategy doesn't
work perfectly together with this component. Two consecutive apostrophes
aren't handled as their own partition since they are not valid Scala
syntax. Thus, the behavior that should only applied to existing
character literals is placed in the same component and must be moved if
the partitioning strategy for character literals ever changes.

Fix #1001403
Add option value for auto escaping strings
Add option value for auto escaping character literals
Fix small bug in LiteralAutoEditStrategy

Before, it was not possible to correctly delete selections containing
more than a single sign.
Add auto edit strategy for multi line string literals

Closing a multi line string literal is done inside of
LiteralAutoEditStrategy because opening triple quotes that are not
closed are incorrect syntax and thus must be handled by its own
component. The remaining behavior is handled in the new component
MultiLineStringAutoEditStrategy.

Fix #1001491
Add auto escaping signs and auto removing escaped signs

The editor supports now the behavior that quotation marks can be
automatically escaped inside of strings and that all escaped signs like
\t or \" can be completely deleted if one deletes part of the escaped
sign.

The new feature is optional, this means it must be activated in the
preferences.

Fix #1001498
Merge pull request #284 from sschaef/issue/string-auto-edit-strategy

Issue/string auto edit strategy
Merge pull request #335 from dragos/issue/slow-completions

Lazy retrieval of Java parameter names in completions.
Comply to the debugger interfaces by wrapping JDI runtime exceptions

Several of the debugger interfaces we implement expect a ``DebugException`` to
be thrown when the called method fails to execute. Failure can occur, for
instance, when a debugger session is terminated by the user. Failing to wrap
the JDI runtime exception in a ``DebugException`` can prevent the debugger to
correctly work and the user is sometime forced to restart Eclipse.

``DebugException`` is a platform exception that is specially treated by
Eclipse.

If you wonder why do we have calls to ``safeStackFrameCalls`` in, for instance,
``ScalaStackFrame.getLineNumber``, the answer is: I don't think we need it. However,
since we are in RCs cycle for the 3.0 release, I want to minimize the changes in
this commit to avoid regressions.

Fix #1001531
Merge pull request #338 from dotta/issue/handling-debugger-runtime-exceptions-1001531

Comply to the debugger interfaces by wrapping JDI runtime exceptions