Delay collection of all project ids until they're needed

Previously, when the plugin was applied, it collected and stored the
ids of all of the projects involved in the build. This proved to be
too early as the id of a project may then change leaving the plugin
with an incorrect id. An incorrect id would then lead to the plugin
failing to identify a dependency as being on a project that's part
of the build and so it would incorrectly apply dependency management
to the dependency.

The plugin has been updated to collect the ids of all of the build's
projects on demand within the resolution strategy that's called
during configuration resolution. By this stage the project ids will
no longer be subject to change, thereby allowing the plugin to
correctly identify dependencies on local projects to which dependency
management should not be applied.

Fixes #9