Some ExternalResource changes.

- Changed the ivy and pom parsers so that they don't infer the publication date from the resource last modified time, and removed getLastModified().
- Changed LocalFileStandInExternalResource so that it does not include the sha1 in the meta-data.
Added a story to allow all repository transports to attempt to use `.sha1` resources to avoid download.
Reworked AbstractMavenModule so that it can deal with (GAV) coordinates with reserved and non-ascii character.
Change ResourcePattern implementations so they can produce properly encoded URIs for artifact locations. Still needs fixing for version lists and Maven snapshots.

- Changed ExternalResourceRepository to use URI instead of String to identify resources.