[430724] Improve IsModifiedSavingPolicy to avoid false positives

This adaptation of IsModifiedSavingPolicy is closer to the
SavingPolicyImpl strategy:
1. it uses the resource.isModified state as a basis to compute what
   needs to be saved;
2. it browses the other resources to detect dependencies toward
   resources which are modified;
3. it filters this set of logically modified resources by serializing
   them in a file buffer and comparing the result with the current file.

This strategy has the following characteristics:
- we avoid many serializations compared to the SavingPolicyImpl
  implementation by using the isModified boolean;
- on the other hand we might browse the models, but this is made in a
  way that proxies should not be resolved. In practice this did not even
  came up in the profiling traces;
- we will never ever actually save the file if there is no change (just
  like the previous policy);
- if we *miss* a resource in the first step and don't consider it
  logically modified whereas we should, its a bug and some resources
  might not have been saved.

Also this commit makes sure only platform:/resources and file:/
resources are considered (which is important for CDOResources for
instance, we don't need to browse the model there, or Ecore resource
with http:// URIs, we don't need to send PUT on the Eclipse Server...).
It make sures non existing files will be saved anyway as their
"isModifed" status would not be enough for a resource which just got
created in memory for instance. It also makes the IsModifiedSavingPolicy
ignore resource.isLoaded when deciding whether a resource has changes or
not. This is necessary to keep the same behavior as the reference
policy.

Bug: 430724
Change-Id: Ic3e2b4a30532d5bf2a010bbda912edb4e6102e5a
Signed-off-by: Cedric Brun <cedric.brun@obeo.fr>
[430724] Introduce a ResourceMigrationMarker

This marker can be attached to a Resource to indicate that some
automatic migration *might* have changed the structure of the model
during the loading (without setting isModified=true).

The marker's presence forces the IsModifiedSavingPolicy to consider the
resource as "logically modified".

This marker is automatically removed when the resource is processed by
the saving policy which checked that the serialization has no difference
with the current file content.

Bug: 430724
Change-Id: I2364dfeb5ee5b7f8404033a49aba1a34ddc432a0
Signed-off-by: Cedric Brun <cedric.brun@obeo.fr>
[build] Make sure icons are included in the build for interactions metamodel

Change-Id: I37711ae22794ab8be5c21393a46582a4a86219cd
Signed-off-by: Pierre-Charles David <pierre-charles.david@obeo.fr>