Session.save will now postpone the save in post-commit
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.
Avoid browsing the models if no resource is marked as logically modified
Make sure IsModified will not even consider resources which are not
saveables
Remove the migration marker while testing for serialization difference.
Make the migration marker reusable for adopters.