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.
We would normally put the license header on top of the package declaration. This will keep it out of the javadocs, but still retain it in the source code.