[443386] Reduce accesses to the preference store in GroupingContentProvider

The configurable options of GroupingContentProvider are stored in the
Eclipse preference store. Because they can change at (almost) arbitrary
time, the corresponding getters directly accessed the preference store
on each invocation to make sure they always get the current version.
However this code can be called a lot in deeply nested loops (by CNF),
and the store accesses are costly (compared to a raw field access). In
practice the values will not change very often (and almost certainly not
when we are inside a loop).

Replace theses accesses with direct field access from a separate
Configuration object, which uses a listener on the preference store to
keep the fields values up to date.

The DynamicConfigurationHelper is a first attempt at a generic helper
that could be used to fix these kinds of patterns elsewhere in the code,
but the preferences story in Eclipse is relatively complex (between
IPreferenceStore, IPreferenceService, IEclipsePreferences, and maybe
others), so it is kept internal fow now until we decide on a common
strategy.

Bug: 443386
Change-Id: If5817917527c7df2139628b94bfd4343748faddc
Signed-off-by: Pierre-Charles David <pierre-charles.david@obeo.fr>
[438649] Avoid to copy layout of label and of its parent

Before copying layout, the label is removed from the selection if its
parent's node is also selected.
This is not problematic in default implementation of Sirius PasteLayout
action but can be problematic with specific implementation of
SiriusLayoutDataManager.

Bug: 438649
Change-Id: Iccbeecc1201a0e9c38ed29c5bc3ca2e94d98b000
Signed-off-by: Laurent Redor <laurent.redor@obeo.fr>
[443381] Add a Deselect All action on diagram

* Add a new action with the Escape key as shortcut to deselect all
elements.
* Add a new icon for this action.
* Also add this action in the Edit menu after Select All action.

Bug: 443381
Change-Id: I131fa9957bc84b89b482e985fdeec7a6338a56f8
Signed-off-by: Laurent Redor <laurent.redor@obeo.fr>
[442289] Add spec for distribute actions

Bug: 442289
Change-Id: I07689df0c2b483eafcf0c681fb0d14032344efc5
Signed-off-by: Laurent Redor <laurent.redor@obeo.fr>