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
Logged NEXUS-7679 to clean up use of `ServiceLocator` in the maven bridge as at the moment the code uses a mix of JSR330 and service lookups which means a `ServiceLocator` must be bound somewhere. Instead it should follow the pattern used in Aether where components provide both an `@Inject` constructor and an `initService` method.