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
Remove unused field.
Removes pendingSources, which shadows sources

Fixes #1002070
Merge pull request #671 from huitseeker/pr/668

Simplifies EclipseSbtBuildManager
Remove CollectionUtil
Remove file withDocument and move its content to EditorUtils
Merge RichAnnotationModel into AnnotationUtils

The only functional change is that JavaConversions is replaced
by the more explicit JavaConverters.
Remove Editor, EditorUI and RegionHelper

Those files were unused
Refactorings in EditorUtils class

- Non UI logic of `applyChangesToFileWhileKeepingSelection` is moved to
  its own method
- The class EditorHelper is removed because its content overlaps with
  EditorUtils (and it was unused anyway)
- The package ui.editor.util is removed
Merge pull request #677 from sschaef/t-cleanup-codebase

cleanup codebase
Remove `return` keywords from `MigrationPreferenceInitializer`
Disable MigrationPreferenceInitializer in UI less environment

This commit prevents possible exceptions that are thrown in an UI less
environment like the test suite because this component relies on UI
classes.
Switch to the Sbt transactional classfile manager.

This involved moving away from the Java interface for passing inputs to
Sbt, since it didn't support passing true IncrementalOptions. This PR
mimics what Zinc is doing.

A couple of cleanups:

- no more pendingSources (it was a workaround the missing transactional feature)
- clear all problem markers when building a project. Until now we removed when each
file started compiling, but Sbt is guaranteed to issue all errors for
a given project. This way we don't have *stale* error markers (a file that
shouldn't have errors, but wasn't recompiled by Sbt).

Fixed #1001953.
Merge pull request #675 from sschaef/t-non-ui-save-migration-manager

Disable MigrationPreferenceInitializer in UI less environment
More explanatory comments, thanks @gkossakowski!
Merge pull request #679 from huitseeker/pr/670

Use Sbt transactional classfile writer
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.