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.
Could be easily done in the scope of 4PCS. But two things have to be considerede:

- It is also used in the derived K-4PCS class, thus it should at least be protected and not public. 
- It is currently placed outside of the class, because I am at the moment working on a multi scan approach, which selects pairwise optimums out of a series of possible solutions (pcl::Candidate). Thus the structure should be available also outside of the class, since one of the getter functions returns the list of possible candidates. Of course, this could be replaced by returning each property of the pcl::Candidate seperatly (list of possible transformations, lis of 4 point correspondences, list of fitness scores), but is this really useful?

As a solution, one could place the Candidate structure inside a further namespace such as "registration" or more specific "fpcs". What do you think?