REVIEW-2712 - promote the CompositeFileTree type that is backed by a list of FileTrees.

Also moved creation of it behind FileResolver.
REVIEW-2707 - revert accidental change to generation of ear deployment descriptor.
Fix error message when failing to find a method by name via reflection.
GRADLEREV-51 - replace some usages of Groovy based reflection with Java based.
GRADLEREV-51 - Remove last of Groovy based ReflectionUtil.
improved VersionMatcher contract

- chain finds the first matcher that canHandle() a selector, then delegates to that matcher
- canHandle() returns false -> no other methods called
- clients must not call accept(String,String) if metadata is needed
- adapted and improved specs, added missing specs
- cleaned up VersionRangeMatcher (deleted obsolete method, moved methods around)
build with Gradle 1.7 final.
C++ spec updates
Further C++ spec update
added spec
got rid of some complexities in VersionMatcher and LatestVersionStrategy that we don't currently have any use for

- move comparison of static versions from LatestVersionStrategy into ExactVersionMatcher
- change VersionMatcher.compare(String,String,Comparator) to compare(String,String) and instead inject comparator into matchers where needed
- use static version comparator for bounds of VersionRangeMatcher (could leave things as-is, but this seems saner than what Ivy impl was doing)
fixed typo
enhanced spec to cover special treatment of 'dev', 'rc', 'final' classifiers
REVIEW-2832: cover some badly-formed range patterns
polishing
REVIEW-2832: add some qualifiers to the mix
REVIEW-2817: use ModuleVersionSelector instead of Ivy's ModuleRevisionId in some places
REVIEW-2817: added integ test for checking consistency of Ivy descriptor version
Changed 'module' to 'component' in the spec.
Moved ExecutorFactory service up from build scope to global scope.