Added 3D SIFT based registration testing code

3D SIFT keypoint based registration, use SIFT keypoints to obtain initial transformation matrix,then use ICP for precise alignment, can be used for fast registration (much faster than ICP) or recognition using pre-defined CAT models as source pointcloud

Sample usage:
sift_registration(cloud_source,cloud_target,cloud_registred)
All inputs should be XYZRGB pointclouds

Known issue:
If there are too many sift keypoints in the source and destination pointclouds, 
the program can not find correspondence, the error is in line 99 of  pcl/registration/impl/correspondence_rejection_sample_consensus.hpp