4pcs registration method ...

...as proposed by Aiger et al. (2007, 4-Points Congruent Sets for Robust Surface Registration) and Theiler et al. (2014, Keypoint-based 4-Points Congruent Sets – Automated marker-less registration of laser scans).

Commit is together with a fast transformation estimation method to speed up the calculation using a minimum number of 3 points. This method simplifies the calculation of transformation parameters when dealing with a 3 point planar case.

I do realize, that a comparable contribution (fpcs by stheg) was done in June 2014, but since the additional method k-4pcs is inheriting a lot from its parent 4pcs, this commitment is only useful in combination.
Understood. Then I think putting the struct inside `registration` namespace is fine. Perhaps it deserves its own file. But as we expose it to a larger scope, doesn't its name feel too generic? Maybe `MatchingCandidate`, or `CandidateMatch`, or `RegistrationCandidate`, or something of that sort would be more appropriate? What is you opinion?