Adds a kepler profile to the build

For when we need a kepler only build
Don't use internal classes for matchers.
Restore contents of file after test, to make it order-independent.
Add specific type annotation to work around Scala bug SI-5559.
Depend on mockito-core instead of mockito-all in the integration test projects.
Additionally, exclude dependency on org.hamcrest:hamcrest-core.

This fixes test failures on Kepler caused by conflicting versions of
hamcrest-core present on classpath: version 1.1 embedded in mockito-all and
version 1.3 pulled in as P2 dependency.
(cherry picked from commit 4e2ff88760b2326fa09ea946877af73110645f90)
Fixes a timing problem in one debug test
Fix order-dependent tests and continuation tests

* don't use `defaultPluginsDir.foreach`, since the type change
from `Option[String]` to just `String`. Strangely enough, the
expression still type-checked, using `Char => Unit`, and calling
the wrong `PropertyStore` overload, leading to failures
* reset the presentation compiler before checking for loaded
plugins
* some tests fail if they are run in a different order,
based on some side-effects (class path changes, property
store changes). Fixed it.
Implement completion overwrites

Allow completions to overwrite existing code. The user can
toggle between insert and overwrite modes by pressing `Ctrl`,
just like in the Java editor. This also respects the Java
editor option for preferring inserts always.

In addition to replacing the existing identifier, we also suppress
the linked mode for arguments (since likely the existing arguments
are not valid, but also we can't erase them, as they may be useful).
This is the same behaviour as in the Java editor

Fix #1000569
Merge pull request #445 from dragos/issue/completion-overwrites

Implement completion overwrites
Merge pull request #460 from skyluc/master-builds-against-kepler

Updates to allow compilation against Kepler (and Juno)
Add scala-xml and scala-parser-combinator dependencies for the 2.11.x profile.
Remove unnecessary xml dependency from test
Merge pull request #464 from dragos/fix/modularization

Fix the build for 2.11
Add test ouput to file when test fails
Reorders val declarations to fix init problem

Fixes #1001784
Merge pull request #467 from skyluc/issue/initialization-fails-using-wizard-1001784

Reorders val declarations to fix init problem
Quickfix to change the capitalization of a method/field invocation

When you try to invoke a method that doesn't exist on a class, this quickfix will offer to change the capitalization if there is another method with the same spelling but different case that exists. For example, changing "abc".subsequence(0, 1) to "abc".subSequence(0, 1).

One limitation is that the compiler will not give type completions after an error. To get around this, we create a Typer and ask for the type of the target, and then get all members on that target. Unfortunately this does not include members that would be available via implicit conversion.
This limitation applies any time you are trying to invoke a method on anything other than the current class. If you are using the unqualified "someMethodWithWrongCase()", we can ask for completions that include members from implicit conversions.

Fix #1001778
Semantic Highlighting now works on classfile source attachments

Created a `ScalaCompilationUnitEditor` that contains the logic common to
both the `ScalaSourceFileEditor` and the `ScalaClassFileEditor`. In particular,
the logic needed to install/dispose semantic highlighting is encapsulated in
`ScalaCompilationUnitEditor`.

It is worth pointing out that the initialization of the Semantic Highlighting
engine is different for the two editors. On the one hand, on an editable scala
source, semantic highlighting is triggered by the reconciler. On the other
hand, for a classfile source attachement, no reconciler is needed (because the
source file can't be edited), hence semantic highlighting needs to be forced at
initialization. This is why in `ScalaCompilationUnitEditor` we have the
following two additional abstract methods

* `forceSemanticHighlightingOnInstallment`
* `createSemantichHighlighter`

This commit comes with no tests because it is not possible to avoid the loading
of UI classes.

Fix #1000939
Integrated reviewers' feedback
Merge pull request #466 from huitseeker/issue/test-output-to-file

Add test ouput to file when test fails