REVIEW-2525: Moved calculation of resolver id into ExternalResourceResolver

- Generated id has not changed
REVIEW-2525: Re-separated the LegacyDependencyResolver wrapper from the adapter used for internal parsing
REVIEW-2527: Use a map to detect duplicate versions
REVIEW-2530: Inject a MetaDataParser into ExternalResourceResolver

- wrapped ivy's ModuleDescriptorParser in custom  MetaDataParser API: still leaks a lot of ivy concepts, but hides a bit.
- Inject MetaDataParser via DependencyManagementServices