A wrapper around URLClassLoader whose only purpose is to expose defineClass
This is needed in order to easily inject classes into the classloader
without having to resort to tricks (that don't work that well on new JDKs)
Lists versions released later than the version of the artifact up to the version
specified or all the later versions in case the up-to-version is not provided.