Implements updateable, serialized Scala lib/compiler containers

Plugs in a list for Add Scala Library/Compiler
Fixes #1001777
Implements update of Scala Library Container based on SourceLevel
modularize ScalaInstallationUIProviders
Initialize classpath container to the desired source level even if no available save

Better portability of Scala projects
Side-effect: modularizing container computation.
Tests sourcelevel & classpath containers.
Don't add a library container to a project that does not have one.

Make classpath container serialization work per-path.
don't enable Adding just yet
Some more validation for unresolving containers
Adds a Directory-based Scala Installation subclass
Adds a ScalaInstallation serializer helper
Hooks in Addition/Removal for Scala Installations
Hooked in Scala Installation Serialization
Limits custom versions to >= 2.10
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
introduces scala installs in UI
Hooks in ScalaInstallations