Reinstate Scala templates (broken when restructuring packages).
remove some deprecations
Upgrades savePluginPreferences
Extends coverage of CompilerSettingsTest
Replace old action API used by refactorings with newer handler API

The names of refactoring classes that provide an integration into the UI
of Eclipse have changed, in order to minimize overhead in the class
names.

The previous code contained some logic that should disable a menu item
when nothing is selected in the editor. But the existing logic was
wrong, it did never work. Because I did not find out how to implement it
correctly with Eclipse core-expressions I romved the logic completely.

Formerly, the context menu item, that showed the refactorings, contained
an item to the "refactoring qick menu", which has now been deleted. This
menu contains all available refactoring and it can be display by
entering a key combination. This item doesn't provide additional
information, thus the deletion. Users can always look up the key
combination in the preferences.

This also changes the ids of the refactring commands.

Fixes #1002049
Introduce a migration manager for key preferences/bindings

Whenever the command ids of key bindings, that are defined by users,
are changed all the preferences are lost because the new commands do no
longer consider their values. To avoid this problem the class
`MigrationPreferenceInitializer` is introduced which can copy old
preference values that are defined by users and set them as default
values for the new preferences.

This class also undefines the old command id and therefore the old key
binding after the migration is done.
Merge EditorHelpers into EditorUtils

The content of EditorHelpers is directly copy-pasted without any
functional changes.

Only some minor formatting changes and the addition of explicit
return types for public methods are applied.
Add property tester for text selections

The `nonEmpty` test on a text selection checks whether something is
selected in an editor. This is used in refactoring handlers in order
to disable them when they can't be applied.
Replaces PropertyStore with sparser platform calls.

PropertyStore.setValue overridden for compatibility with <= Juno.
Merge pull request #660 from huitseeker/issue/Preferences

Replaces PropertyStore with a set of sparser platform calls.
Indent templates to the same indentation as the line of the insertion point.

Simple solution that makes templates usable: even if they are not properly indented,
multi-line templates now align to the first non-whitespace character of the insertion point.

No tests because this is purely UI code.

Fix #1000058, #1000626,
Merge pull request #663 from dragos/issue/template-engine

Re-enable and improve Scala Templates
Renamed a field in a test for finding references.

This test is probably failing due to a match found deep in the JDK 8. Since
`x` is such a common parameter name, decided to rename the field.
(cherry picked from commit c20c2616315a74edcefd06d2233135233b9f809c)
Merge pull request #664 from sschaef/t1002049-new-refactoring-menu

New refactoring menu
Cleanup templates

- Only templates that are not overall useful are disabled, all others
  have been enabled
- Addition of isInstanceOf template
- Removal of systrace template because it is broken and not useful
- Fix of val template (it had a wrong context id)
- Some more minor cleanups
Merge pull request #667 from sschaef/t-cleanup-templates

Cleanup templates