TMF: Synchronize an experiment instead of collection of traces

That will make it compatible with streaming since one full trace does not
have to be read before the others. It will also accelerate the time necessary
to get results, as matches will be found earlier.

Change-Id: I7c94c21e63781b2cae0faead915be8959170a992

Conflicts:
	lttng/org.eclipse.linuxtools.lttng2.kernel.core.tests/src/org/eclipse/linuxtools/lttng2/kernel/core/tests/event/matchandsync/MatchAndSyncTest.java
	lttng/org.eclipse.linuxtools.tmf.core/src/org/eclipse/linuxtools/tmf/core/event/matching/TmfEventMatches.java
	lttng/org.eclipse.linuxtools.tmf.core/src/org/eclipse/linuxtools/tmf/core/event/matching/TmfNetworkEventMatching.java
	lttng/org.eclipse.linuxtools.tmf.core/src/org/eclipse/linuxtools/tmf/core/trace/TmfExperiment.java
cleanup + benchmarks différentes approches

Change-Id: I2715ce92ebc5ce3bb44eb0f27213f34a16b80d1b
Add efficient union find algorithm

The union find allows to detect when there is a valid synchronization
between each nodes, when there is only 1 partitions.

Signed-off-by: Francis Giraldeau <francis.giraldeau@gmail.com>
Add partition update to sync algo

Update union find to detect condition when all traces are synchronized.

Signed-off-by: Francis Giraldeau <francis.giraldeau@gmail.com>
Implement pre-sync

The pre-sync reduces the memory usage of the synchronization by first shift the
trace to the origin, such that if they were started at the same time, they
should overlap quickly. This yield a first approximation of the
synchronization. The complete sync is performed, but then events are matched
continuously, thus reducing the maximum memory consumption.

step        hit   max size
worst     18884     124835
presync    1404      10317
realsync  13853      10758

The realsync also includes cleanup of old unmached packets, and that explain
the reduced max size.

Signed-off-by: Francis Giraldeau <francis.giraldeau@gmail.com>