Handle newer predefined launcher types in boot overrides
Synchronize at a higher level on the Scala provider cache.

Construction of Scala providers was already properly synchronized jvm and machine-wide.
The cache on top of construction was not.  This could cause the same Scala version to
be loaded in multiple class loaders.