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)
does it make sense to reimplement standard hash tables? They seem to be universally available in modern STL implementations.