Load extensions using a separate ExtensionClassLoader for each.

These changes will allow extensions to contain different versions of JAR files. Libraries in the DataCleaner lib directories will always get precedence.
Not sure I understand the name part "Scanning". I think I would call this something like CompositeClassLoader or CompoundClassLoader or something like that... A "scan" is IMO often something more elaborate than just a composite of objects.