[434936] Avoid calling eResource() twice on the same element

Bug: 434936
Change-Id: Iccdb1642a3080a61641fa846bd904831ce02440a
Signed-off-by: Pierre-Charles David <pierre-charles.david@obeo.fr>
[444861] Add a note in doc about feature interpreter

Add a note in doc about feature interpreter and feature delegation at
Reflective.

Bug: 444861
Change-Id: Ibdbc45caf1f38cfdce260180a67403261f722131
Signed-off-by: Esteban Dugueperoux <esteban.dugueperoux@obeo.fr>
[437097] Fix potential NPE introduced with the last Bug 437097 commit.

The commit 6b32313 has introduced a NPE in some case of edge creation. 

Bug: 437097
Change-Id: I2f7c68cba9beda96d72ed1d6cd5a68a93265c9d8
Signed-off-by: Laurent Redor <laurent.redor@obeo.fr>
[426687] Handle all Notifiers (not just EObjects) in SessionEventBroker

Bug: 426687
Change-Id: Ia5fd7b04b74f6758bd085e2935963f7001b1af7c
[426687] Handle explicit changes in Resource.isModified

Bug: 426687
Change-Id: I9ef4e61b1376a7aa653fa06963f2b992be36bafe
Signed-off-by: Pierre-Charles David <pierre-charles.david@obeo.fr>
Add a consistency check in the old policy to compare with what the new one would produce

Change-Id: Ic1e0248f8f199d086328155689c6ecbb5102b559
[426687] Make sure the save filter does not change isModified
Change the current saving policy to ignore formatting changes

With this change the old saving policy (which is our "reference here") 
will detect if a model needs to be saved by loading the filesystem
version, reserializing it in memory and compare this serialization with
the serialization of the one in the one in the resourceset.

This is necessary to avoid re-serializing because of changes of
serialization options like LINE_DELIMITER.

This is in no way something which should get commited on master and
shipped, this is only use to compare with the new implementation.
IsModifiedPolicy ignores isLoaded and use ResourceStatus

This change the IsModifiedSavingPolicy so that isLoaded is not checked
to decide whether a resource has to be saved or not. This is necessary
to keep the same behavior as the reference policy.

It also leverage the ResourceStatus.UNKNOWN to detect cases where
a resource has been added in the resourceset but has no underlying file.

Last but not least ConcurrentModifications which might happens in the
case of proxy EObjects are now avoided.
Add a marker on resources when they are migrated during loading

This marker is used to force the saving of the resource even if there is 
no logical change (to be compliant with the previous implementation of 
a saving policy).

This marker is cleared when the resource got actually saved on disk.

NB : this commit is a draft only to validate the hypothesis that this
fixes some regression, should not be commited "as is".
IsModifiedSavingPolicy will only try to save platform:/resource

Make sure the IsModifiedSavingPolicy will have the same behavior as
before by considering non platform:/resource URIS and .odesign files are 
not to be saved. This used to be tested in
org.eclipse.sirius.business.internal.session.danalysis.ResourceSaveDiagnose.isSaveable().
Activate IsModifiedSavingPolicy by default
Extends the IsModified policy so that it does extra work to avoid false
positives.
Mix both approaches : isModified + dependencies to determine the scope
and serialization comparison to narrow it and avoid false positives.
Session.save will now postpone the save in post-commit
Avoid browsing the models if no resource is marked as logically modified
Make sure IsModified will not even consider resources which are not
saveables