[ExtendedDataUtilities] Moved the common base class into the model plugin
[ColourUtilities] Added change descriptors for setting colours
[editors, model] Prefer calling the tryValidateChange(IChange) method
[ExtendedDataUtilities] Changed the signature of getNormalisedNewValue

Normalisation strategies are allowed to be context-sensitive; as a result,
the method now takes a PropertyScratchpad and a Resolver as arguments
[ParameterUtilities] Added a change descriptor for setting parameters

A change descriptor for setting parameter policies shall follow shortly
[IRedPropertySource] Return IChangeDescriptors, not IChanges

This commit also updates ModelPropertySource and RedPropertySheetEntry to
deal with the new return types
[ParameterUtilities] Added a change descriptor for setting parameter
policies
[ModelObject] Deleted the ExtendedDataNormaliser interface

The ongoing work to remove ChangeExtendedDataDescriptor has, as a pleasant
side effect, also removed all implementations of this interface
[ModelObject] Require that all ModelObjects provide getIdentifier methods

To highlight any bugs that might be exposed by this change, ModelObject
provides default implementations which throw RuntimeExceptions
[ParameterUtilities] Restored the parameter value caching behaviour
[DescriptorExecutorManager] Increased the visibility of the handler class

DescriptorExecutorManager.Handler is now package-private rather than just
private
[BoundDescriptor] Handle execution by directly instantiating a Handler

By bypassing the second validation pass associated with tryApplyChange,
BoundDescriptors no longer fall apart in the presence of final validation
[ExecutorManager, DescriptorExecutorManager] Only instantiate one handler
[LayoutUtilities] Added a change descriptor for setting layouts

The new ChangeLayoutDescriptor class also introduces a new, experimental
convenience constructor; I expect that this will make its way into other
descriptors
[Control, PortSpec] Fixed a destructive change-simulation bug

Simulating the ChangeRemoveControl and ChangeRemovePort changes was causing
the real namespace, not the scratchpad, to be updated
[ExtendedDataUtilities] Added a simple extended data descriptor handler

Other than making sure that its ModelObject can actually be found by the
resolver, this handler performs no validation at all
[ControlUtilities] Added a change descriptor for setting port distances

This descriptor uses the new SimpleHandler class, so it has almost no code
[ControlUtilities] Added a change descriptor for setting control shapes
[ControlUtilities] Added a change descriptor for setting control labels

The label validator was the only remaining implementor of the
ExtendedDataValidator interface; future commits will remove it
[ModelObject] Removed the extended data validation interfaces

The FinalExtendedDataValidator interface survives in LayoutUtilities as a
temporary bodge