Remove pomegranate dependency

- Resolve dependencies at runtime by passing them to a separate
  classloader. The classloader uses pomegranate to resolve the
  dependencies and passes back a list of jar file paths, which are then
  added to the project classpath via URLClassloader.

- Compatibility with older versions of boot.core is maintained, as the
  add-dependencies function signature is unchanged.