Modify merge to handle implications properly

This introduces an overhaul of the merging process as a
whole in order to properly handle implications (a diff
implied by another does not need merging in itself, we
only need to merge the implying), most notably for the UML
comparison support.

The same algorithm is now used to merge differences in a
batch (or to simply merge implications, results and
equivalences) and to display the impact analysis of a merge
in the user interface (what will be merged and what will be
rejected when I merge such or such difference).

Change-Id: I39f69c05f94b5f18cb3a3c3b1f7089700f138282
Adds year of contribution to copyright header

Change-Id: I5dabe48f506ea413ad7db71ea28d144bcfda957b
Signed-off-by: Philip Langer <planger@eclipsesource.com>
Merge "Modify merge to handle implications properly"
Pre-merge from EMF logical merging

This also introduces an in-depth impact analysis facility
that allows EMF Compare to automatically pre-merge
everything that can be (i.e everything that is not in
conflict or does not depend on a conflict resolution). This
is notably used within the logical merging, but could also
be used for the "merge all non-conflicting" actions of the
user interface.

Change-Id: I236cd86a32b58c4e927ec43753f354a186af7ccb