Local UF of the global cluster ids.

Works: running the local union-find on the extended pixels. This gives us
the initialization of the roots based on the local pixel ids. Merging
occurs based on the global cluster id and not on the pixel values, which
allows us to reproduce the clusters identified on the Stage 2.

After this phase run the local UF again on the same data, but merge based
on the pixel value and record merges.
Stage 3 works: merges of clusters are recorded.

Finished the 3rd stage of the algorithm. However, the code not tested
extensively yet and also a bit dirty.

Now we have the recording of all the merges of clusters that occurred accross the
processors. Further steps:
i) refactor the code;
ii) implement stage 4.