Add surface_matching module.

This is the surface_matching module developed by @tolgabirdal for the GSoC 2014.

Video can be found [here](https://www.youtube.com/watch?v=uFnqLFznuZU)
should we use some common prefix for the guard macros like _OPENCV_SURFMATCH_POSE3D_HPP_