Double precision for solvePnPRansac()

I believe that the assertions
*CV_Assert(opoints.depth() = = CV_32F);
CV_Assert(ipoints.depth() = = CV_32F);*
in the method cv::solvePnPRansac are a bug: other PnP functions explicitly support CV_64F.
So this is a bugfix allowing solvePnPRansac() and pnpTask() to deal with CV_64F matrices.

I don't know whether the use of templates is the prettiest solution but I used them like they are used in the function p3p::solve() (in file calib3d\src\p3p.cpp)