Add highlighting preference for Dynamic calls

The default colors for the new preferences are taken from already
existing highlighting classes. selectDynamic and updateDynamic are
highlighted as template vars, whereas applyDynamic and applyDynamicNamed
are highlighted as methods.

A new Dynamic category is introduced to the syntax coloring preference
page.
Remove needless information from preference page

It is already clear that the Scala preference page highlights Scala
symbols, no need to add this information again in the displayed name
of the ScalaSyntaxClass.
Disable javaextdirs setting in Scala projects.

This setting is appended to the Scala class path. It defaults to the running JDK
extdirs, and that can cause trouble when the project JDK is different from the
JRE used to launch Eclipse.

Fix #1002072
Removes misc deprecated and unhygienic elements.
Merge pull request #659 from huitseeker/issue/lints

Removes misc deprecated and unhygienic elements.
Merge pull request #658 from dragos/issue/extdirs

Disable javaextdirs setting in Scala projects.
Reinstate Scala templates (broken when restructuring packages).
Cleans up more warts (mostly Option-related)

- if your pattern-match on option has no guards on the Some, let the
other case be explicitly None, this will avail you of the totality
check.

```scala
  case Some(x) if (condition) => ...
  case _ => ...
```

 is ok, and so is the case where x is replaced by a refutable pattern. But

```scala
  case Some(x) => ...
  case _ => ...
```

 is usually more safely written

```scala
  case Some(x) => ...
  case None => ...
```

- Don't hesitate to use foreach, exists, map, forall, orElse, getOrElse on Options
  http://blog.tmorris.net/posts/scalaoption-cheat-sheet/.
Merge pull request #661 from dragos/master

Remove preference store listener on deactivation
Merge pull request #662 from huitseeker/issue/morelints

Cleans up more warts (mostly Option-related)
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.
Correctly determine if compiler settings were changed through the UI.

Also, make sure the dialog prompt to clean all projects appears only when settings were really changed.

Fix #1002075
Remove all traces of `Trim`

This class never really pulled its wait. Since it was the root cause of
the bug just fixed, the only remaining use was removed. It conflated `String.trim` and `isEmpty`
in one go.
Replaces PropertyStore with sparser platform calls.

PropertyStore.setValue overridden for compatibility with <= Juno.