Close presentation compilers which weren't used for specified time

Each PresentationCompilerProxy has some kind of activity listener which contains a timer checking periodically last activity time.
User can choose frequency in preferences (disable, set amount of minutes, decide whether open editors should be taken into account).
Unfortunately sometimes memory can't be freed when there are still open editors and user chose an option to ignore open editors. The reason is that a reference of a presentation compiler is still used somewhere. Tests performed using profiler and also empirical ones showed that this problem is related to implicits highlighting. Added code contains adequate comment related to this issue.

Also:
 - fixed memory leak - ScalaProjects were never freed due to a listener which wasn't removed
 - updated license links

Conflicts:
	org.scala-ide.sdt.core/src/org/scalaide/core/internal/ScalaPlugin.scala
	org.scala-ide.sdt.core/src/org/scalaide/core/internal/project/ScalaProject.scala
	org.scala-ide.sdt.core/src/org/scalaide/ui/internal/preferences/ScalaPreferences.scala
Tests for added listener

Also little changes in listener class itself to increase its testability. Thanks to them we even don't need to use mockito (which honestly wouldn't work in the case of ScalaPresentationCompilerProxy because it's final - and also adding PowerMock would be problematic due to OSGi and own classloaders).
Added another test

Also some little corrections
Rewrite preference page and update logic

- New, separate preference page (the old Scala page has been reverted to the previous version).
- Improved GUI.
- Added checkbox indicating whether this feature is enabled (instead of setting 0 as a value).
- The logic has been rewritten according to this change.
- More tests - test also changes in preferences.
Add hasOpenEditors to api.ScalaProject

Fixes after git rebase and corrected contribution notes.

Conflicts:
	org.scala-ide.sdt.core/src/org/scalaide/core/IScalaProject.scala
	org.scala-ide.sdt.core/src/org/scalaide/core/internal/ScalaPlugin.scala
Use only one, global timer

Also:
 - make killer tasks more lightweight
 - use whole strings in preferences to make them easier to search
 - log info about shutting down PS due to inactivity
 - remove copyright notes from files which existed previously

Conflicts:
	org.scala-ide.sdt.core/src/org/scalaide/core/IScalaProject.scala
	org.scala-ide.sdt.core/src/org/scalaide/core/internal/ScalaPlugin.scala
Corrections after rebase related to changes in ScalaPlugin API
Move open editors check from ScalaProject to ScalaEditor

So that ui-related operations are removed from ScalaProject API.
Merge pull request #765 from afitz/feature/close-unused-presentation-compilers-rebased2

Close ScalaPresentationCompilers which weren't used for specified time
Make the presentation compiler independent of a Scala project.
Remove status handler for missing Scala library, and instead use a marker resolver.

This removes the pop-up dialog for a missing Scala library when trying to instantiate
the presentation compiler. Instead, the error marker in the Problems View, which was
anyway created, now has a marker resolver (enabling QuickFix — Ctrl-1), just like
Scala Installations errors.

This makes it possible to remove the IScalaProject dependency from PresentationCompilerProxy,
which should be able to manage any presentation compiler (with or without an associated project).
Adds missing getOption() synchronization call

The previous getOption call (old API) was replaced by an asyncExec, it requires
a getOption() (new API) to wait for the execution of the code.
Merge pull request #798 from skyluc/issue/NPE-create-class

Adds missing getOption() synchronization call
Extract project-specific logic out of the PresentationCompiler proxy.

Also added a factory method in the API.
Decouple watchdog from compiler proxy through Pub/Sub.

Also fix some NPEs during tests.
Merge pull request #796 from dragos/api/compiler-project-disentangle

Disentangle presentation compiler and Scala project
Reactivate logging on reading Installation file
Fix Match Error on BuildSuccess Publication
Makes preference Store save failure more visible
Scala Installation setting is now a multiSelect action