Added ability to use externally computed normals to supervoxel clustering

This patch provides an interface and functionality to allow the user to supply a normal cloud to be used with the clustering (rather than having supervoxel_clustering compute normals itself).

This allows for use of external (more accurate) normal methods, such as "Fast and Robust Normal Estimation for Point Clouds with Sharp Features" Boulch and Marlet.