Add app to test clustering algorithms.

Need a criteria to decide when is necesary to replace cluster button
with element buttons and viceversa.  Idealy we would compute the
distance to the camera and use that, also project the scene to a plane
and do the distance computation.

Replace some vtkSmartPointers by vtkNew.

Fix the callback function to take into account cluster button.

Tidy, fix runtime error/message about not finding signal slot.

Add the camera event callback.
The purpose of the callback is to track changes event in the
camera so we can update the clustering.

Add the camera event callback.
The purpose of the callback is to track changes event
in the camera so we can update the clustering algorithm.

Streamline clustering algorithm implementation.
Add interaction event to update/sync widgets.
Optimization changes and add radius based on pixels.
Optimize clustering by streamlining creation of widgets.
Widgets are going to be created at the initialization stage
and only the cluster widgets are dynamicaly created when interaction
occur.

The clustering method perform considerably faster by only
creating/destroying cluster buttons with each interaction.

Add routine to enhance clustering.

The clustering method do a relabeling of nodes accordingly to their
distance of it with its cluster and other possible clusters.

There is an option in msvVTKWidgetClusters that allow you
to improve the clustering at a sligly higher cost.
Replace the logo with new one.

Add hierarchical capabilities to the clustering
methods in order to handle multiple levels (or scales).  Each level
contains one or more datasets (or pieces) from which button
are created and clustered.

Issue #8
Fix bugs and refactoring some of the info keys.

Issue #8
Merge branch '8-buttonClustering'

* 8-buttonClustering:
  Fix bugs and refactoring some of the info keys.
  Add app to test clustering algorithms.

Issue #8