Changed ModelAdapter so that it works with MutableModelNode instead of ModelNode.
Removed ModelRegistry.node() for now.
Allow a model creator or mutator action to provide a ModelCreator when adding a link to a model node. Still creates the linked node eagerly.
Changed DefaultCollectionBuilder to use a ModelCreator to define collection elements.
Busted out a shared mutation action used to initialise a managed struct or collection.
Split out a wrapper for ModelNode that the registry can use to get involved in changes to the graph and registration of rules by creators and mutators.
Added some unit test coverage
No need for ModelNode to inform anything of new links as the registry already knows this now.
Changed DefaultModelRegistry to create a ModelNode for an element as soon as its creator is registered.
Some changes to allow ModelPath to better deal with name components that aren't well formed (eg task names).
Changed DefaultModelRegistry so that it no longer eagerly creates linked elements. This means, for example, that tasks created using CollectionBuilder will not be created or configured until required.

Also made some changes for more efficient lookup of nodes given a path.
Added some unit and integration test coverage for lazy creation and configuration of tasks via CollectionBuilder.
Added a story and some notes for rules support for managed maps and collections.