abstracted the geometric descriptor matching even more, different implementations share the register method now,
only the pairwise matching is different