Refactoring and new features

- Switch from sonatype aether to eclipse aether (the former was erroring with the latest package versions)
- Limited code jars to the runtime dependencies (that is, exclude build dependencies that were being included before)
- Significant refactoring to ease code understandability
- Possibility of adding custom JVM locations, and even limit them to specific platforms.