Add an overload of pcl::io::savePNGFile().

The new function takes sensor_msgs::Image and saves it as a PNG file.
Currently supported are "rgb8", "mono8", and "mono16" image encodings.
Add PointCloudImageExtractor base class and several implementations.

* PointCloudImageExtractorFromRGBField produced a color image based on
  the data in "rgb" field of a point cloud.
* PointCloudImageExtractorFromNormalField produced a color image based on
  the data in "normal" field of a point cloud.
* PointCloudImageExtractorFromLabelField produced a mono image based on
  the data in "label" field of a point cloud.
* PointCloudImageExtractorFromZField produces a mono image based on the
  "z" field of a point cloud.
* PointCloudImageExtractorFromCurvatureField produces a mono image based on the
  "curvature" field of a point cloud.
* PointCloudImageExtractorFromIntensityField produces a mono image based on the
  "intensity" field of a point cloud.
Add an overload of pcl::io::savePNGFile().

The new function takes a field name and uses appropriate
PointCloudImageExtractor subclass to extract an image from the given
field. Currently supported are "normal", rgb", "label", "z",
"curvature", and "intensity" fields.
Add pcd2png application to the "tools" module.
Add tests for Point Cloud Image Extractors.