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.