CreateMethodProposal refactoring

To reuse behaviour in abstract members implementation feature
Abstract members implementation added

Current version limitations:
1) There is no stub generation for abstract val/vars
2) Type parameters for defs are not generated
3) The text overlaps with the icon in quick fix menu when there is one abstract method
4) Additional brace is added to the class while invoking abstract member implementation feature from class/trait with empty body:
class Test extends TestTrait {^
}
(but for: class Test extends TestTrait {^} result is correct)
5) Stub for abstract member is not generated while invoking abstract member implementation feature if the cursor is on `class`/`trait` keyword: cla^ss Test extends TestTrait
Fixes default for project specific compiler settings

Don't reset to default values when disabling project specific compiler settings.
Adds support for boolean settings with default values in the compiler settings hierarchy.

Fixes #1002083
replaces CheckBoxSettingWithDefault with a by-name parameter and additional constructor

Thanks @skyluc for the simplification.
Remove useless conditions that check invalid input

In `CommentAutoIndentStrategy` the conditions that check if the input is
correct are useless because the docs don't state that invalid input can
be passed. While for Eclipse docs this doesn't mean anything all the
other auto edit strategies had never had any problems with invalid input.
Add auto breaking of comments functionality

With this feature multi-line and Scaladoc comments are automatically
broken after the print margin.

The feature can be enabled/disabled in `Scala -> Editor - Typing`.

Fixes #1002101
Merge pull request #681 from huitseeker/pr/674

Fixes default for project specific compiler settings
Add `override` keyword to some methods

I can't see these tickets any longer. Sadly I don't know of any linting
tools that could check the entire codebase for the missing `override`,
thus only the three reported classes are fixed and not more.

Fixes #1001938
Fixes #1001937
Fixes #1001936
Merge pull request #685 from sschaef/t-add-override

Add `override` keyword to some methods
Merge pull request #682 from sschaef/t1002101-auto-breaking-comments

T1002101 auto breaking comments
Stubs for abstract members - type params, val/var added
Stubs for abstract members - tests added
Merge pull request #672 from VladimirNik/abstract-members-implementation

Stubs for abstract members
Now, identifiers (of classes, traits, defs, fields, ...) that would be
invalid without back-ticks are autocompleted with back-ticks.

Also added tests that exercise this enhancement.
Merge pull request #688 from pmellati/literal-identifiers-autocomplete-1001371

Better support for auto-completion of identifiers that require backticks
Attempt to not crash too badly when a file is deleted from the workspace.
Introduce ScalaInstallation to represent the Scala jars used to build a project.
Merge pull request #691 from dragos/issue/on-the-fly-compiler-interface

Define ScalaInstallation, in preparation for multi-version support
Bumps version numbers
Create features for each Scala versions

This will allow to install multiple versions of Scala on
the same Eclipse installation.
The main sdt build phase now only depends on p2 repos, external or local
created in the previous phases.