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.