Adds a Directory-based Scala Installation subclass
Hooks in Addition/Removal for Scala Installations

Limits custom versions to >= 2.10
Adds a ScalaInstallation serializer helper

Hooked in Scala Installation Serialization
Deals with deserializations, including that of bundles
Hardens scala jar detection in case of multiple suitable jars

Harden against non-binary-compatible {compiler, reflect, ...}.properties
Plugs in ScalaInstallation choices
Container edition triggers Scala Installation choice

Container edition sets the desired scala installation,
updates the compiler settings view from Pub/Sub model.
Rationalizes ScalaInstallationChoice usage
The builder is now explicitly connected to scala desired version resolution
 (previously only worked as a side-effect)
Compiler Settings modification consistence

- in case of page flipping on a dirty compiler settings page,
  issues a warning message
- scala installation combofield selection now updates the apply button correctly.
Classpath Container Editor sets the initial selection.
Linting

- error messages
- using SWTutils for Listeners
- factorizes ScalaProject usage
- make installation hashes portable
Classpath Error (previous version) now offers a generic Scala Install Dropdown
Cross-versioned error now proposes a Scala Installation Choice
Project now prompts for a Scala Installation on resolution error.

Some cleaning:
- Project has simpler getDesiredScalaInstallationChoice.
- actually it's easy to have Scala installation saving log (harder for reading)
More linting

- factory method for directoryScalaInstallations
- more logging on install serialization
- cleaner Classpath test project
- cleaned imports
Adds tests for DirectoryScalaInstallation

Tweaks the source jar resolution to be more strict
Un-break tests
Edition of build path for projects w/ container & library now redirects to preferences.
Stub for Scala Desired Installation testing