[ChangeLoader] Added a convenience method for adding change descriptors

This new method uses IChangeResolver's getResolver method to create and
simulate a BoundDescriptor
[DescriptorExecutorManager] Call the right method in Handler.executeChange

Calling run instead of step means that executing ChangeDescriptorGroups
inside a BoundDescriptor can actually work properly. For consistency's
sake, this commit also makes an analogous change to ExecutorManager
[LayoutUtilities] Don't create more BoundDescriptors than is necessary
[BoundDescriptor] Added an implementation of the toString() method
[LayoutUtilities] Made the relayout operation more flexible

Relayout now uses two PropertyScratchpads: one stores the current state
and the other keeps track of intermediate layout steps
[RedXMLUndecorator] Re-enabled the automatic layout fallback behaviour
[Point] Deleted the changes for connecting and disconnecting Points

Since the playground's operations don't seem to use PropertyScratchpads
for anything, there's no clear way of retrieving identifiers for things.
As a consequence, this commit stands a good chance of breaking something
[model] Added full simulation implementations to all IChangeDescriptors

IChangeDescriptors no longer use their createChange methods in order to
perform simulation, which paves the way for the removal of createChange
[IChangeDescriptor] Deleted the createChange method

This commit has had quite a lot of side-effects -- in particular, the rule
editor now executes changes descriptors directly, which makes the problems
with extended data handling very obvious indeed
[IChange, IChangeDescriptor] Added some (trivial) collection interfaces

The special treatment given to ChangeGroups and ChangeDescriptorGroups
might actually be useful elsewhere, too. An upcoming commit will make that
possible by altering the four manager classes to check for this interface
[ChangeGroup, ChangeDescriptorGroup] Implement the new collection
interfaces
[assistants, descriptors] Removed the hard-coded checks for ChangeGroup
and ChangeDescriptorGroup

Changes and change descriptors which need the special group handling can
now implement the appropriate collection interface
[Edit] Implemented the new change descriptor collection interface

It should now be possible to execute an Edit directly
[changes] Improved the Javadoc
[ExecutionTests] Rebuilt using change descriptors

This commit also adds a test of the locking functionality of the dummy
class
[ExecutionTests] Added lots and lots (and lots) of documentation

The dummy model object used in these tests is now something of a worked
example
[SignatureDescriptorHandler] Don't allow controls with ports to be removed
[SignatureEditor] Check that deletion actually succeeded before changing
the selection
[ResolverDeque] Added a utility class for aggregating Resolvers together
[IChange, IChangeDescriptor] Require that groups provide a size() method