Applies changes needed to compile against Juno

Updates the jdt dependencies.
Implements the added and modified abstract methods.
Ligth cleanup of the poms.
Removes some helios support

- Remove helios reflection implementation from GeneralScalaJavaBuilder.scala
- Cleanup unused imports
Sets Eclipse profile in default params for build
Removes pre-Juno generic hack
Fix dependency on `org.junit4`.

In Kepler, there's only one bundle, `org.junit`.
Removes references to JavaStringAutoIndentStrategy

This is an internal JDT class, and its constructor changed between Juno and Kepler.
It was a blocker to be able to use the same build on both Juno and Kepler.
Less non-API reference is better.

The features lost are the one defined in the 'In string literals' in
Preferences>Java>Edito>Typing. They are about managing multiline content in simple string literals.
They didn't really make in the Scala context, where multiline string literals can be used.
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.
Solve warnings about adapting argument lists
Resolve warnings about implicit conversions.

- Change implicit conversions to implicit classes
- Make implicit methods explicit when implicit is unnecessary
- Make some implicit conversions more explicit
- Reduction of scope of implicit conversions
Fix "catch all Throwables" warnings
Solve warnings about postfix operators
Solve warnings about side effecting nullary methods
Solve warnings about reflective access of structural types
Solve deprecation warnings
Fix #1001774: don't discard generated code

Also fix another instance of the same bug.
Fix create method quickfix exception

The create method quickfix failed with an exception (calling None.get) when the error message triggering the quickfix was "not found: value <method name>".
This is because we would mistakenly tell the refactoring library that the target was always a class, even though it could have been something else (eg, an object).
The scala-refactoring library now supports targetting the definition by offset, so we use that here.

Fix #1001740
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)