lints the Scala Installation switch
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
Tighten serialized container usage

Only favor saved Classpath Container when it conforms to freshest desired source level resolution
Adds a Directory-based Scala Installation subclass
Adds a ScalaInstallation serializer helper
Hooks in Addition/Removal for Scala Installations

Limits custom versions to >= 2.10
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