use Eigen structures for keypoint data

also add utility functions EuclideanToHomogenous and vice versa