Dependency resolve rule can substitute module id.

1. In addition to 'version', it is now possible to manipulate module 'group' and/or 'name' via the dependency resolve rule.
2. It is a first stab at the implementation - simplest working solution. Some things have refactoring pending. Some stuff needs Adam's feedback (changes to the DependencyGraphBuilder and reflective construction of the DefaultDependencyIdentifier).