Eclipse/Aether migration

Mostly dependency and import changes, plus some refactoring due to changes in the Aether API/SPI

https://issues.sonatype.org/browse/NEXUS-6776
Note this is in the maven plugin: either we explicitly depend on Guava for this single method or we use the smaller plexus-utils. Previously we just happened to get Guava on the runtime classpath due to accidental exposure via a transitive dependency of the Maven 3.0.x artifacts, but can't rely on it always being there in the future unless we explicitly depend on it.