Report more than just the revision.
Pay attention to branch in LatestVersionMatcher.
Allow LatestVersionMatcher to conditionally handle branches.

Originally, LatestVersionMatcher did not respect branches, so would
return the wrong revision and later Ivy would fail with a branch
mismatch exception.

The previous fix changed LatestVersionMatcher to look at askedMrid
and would always return needModuleDescriptor=true if it included
a branch.

This fixed the bug, but meant a module descriptor was always required
if askedMrid had a branch, regardless of whether your pattern included
branch or not.

This restores the fast-path behavior that, if the resolver pattern
includes branch, such that any askedMrid we're passed already
implicitly has the right branch, we can return false and avoid
pulling back the module descriptor.

To do this, we must add a way for the version matcher to ask it's
resolver "hey, did you filter on branch already?"

The interface HasPatternInformation adds this ability, and the
VersionMatcher needModuleDescriptor method now accepts it as
a parameter.
Use a per-resolver ivydata file for caching dynamic mrids.

This allows resolvers to cache what latest.integration/etc. mean to them
regardless of whether their value is the latest value across all resolvers.

(Previously latest.integration could only be cached once per mrid, so
whichever resolvers were not latest would end up having to hit the network
each time retrieve was ran.)
Spike making maven sources transitive.
Avoid corrupting ivycache by writing to symlinks.
Use Files.createSymbolicLink, so remove the isMakeSymlinksInMass logic.
Probe for shaded jars with parsing Maven poms.
Add m: prefix when reading extra attributes from resolution cache.

Without this, the hashCode of MDArtifact and DefaultArtifact will
be different for artifacts with a Maven classifier.

In particular, this led to artifacts with classifiers not being put
on the IvyDE classpath.
only create shaded conf if a shaded.jar exists in maven

Conflicts:
	src/java/org/apache/ivy/plugins/parser/m2/PomModuleDescriptorBuilder.java
	src/java/org/apache/ivy/plugins/parser/m2/PomModuleDescriptorParser.java
Only put in transitive sources for non-optional deps

Conflicts:
	test/java/org/apache/ivy/plugins/parser/m2/PomModuleDescriptorParserTest.java
do not include transitive sources for provided or system
Merge branch '1141_bad_branch_name_fix' into bizo

* 1141_bad_branch_name_fix:
  Allow LatestVersionMatcher to conditionally handle branches.
  Pay attention to branch in LatestVersionMatcher.
Merge branch '1430_cache_dynamic_mrids_per_resolver' into bizo

* 1430_cache_dynamic_mrids_per_resolver:
  Use a per-resolver ivydata file for caching dynamic mrids.
Merge branch 'bizo_tweak_unresolved_error' into bizo

* bizo_tweak_unresolved_error:
  Report more than just the revision.
Merge branch 'fix_defaultartifact_hashcode' into bizo

* fix_defaultartifact_hashcode:
  Add m: prefix when reading extra attributes from resolution cache.
Merge branch 'probe_shaded' into bizo

* probe_shaded:
  only create shaded conf if a shaded.jar exists in maven
  Probe for shaded jars with parsing Maven poms.
Merge branch 'symlink_fix' into bizo

* symlink_fix:
  Use Files.createSymbolicLink, so remove the isMakeSymlinksInMass logic.
  Avoid corrupting ivycache by writing to symlinks.
Merge branch 'transitive_sources' into bizo

* transitive_sources:
  do not include transitive sources for provided or system
  Only put in transitive sources for non-optional deps
  Spike making maven sources transitive.