changed c++ SIFT implementation to return keypoints and descriptors (hopefully)