core: Refactor tri_and_alt_ip_filtering into .cc file

This also removes a couple headers from InterestPointMatching.h like
Datum.h StereoModel.h and GaussianClustering.h. I'm pretty happy with
that, maybe compilation times will drop a little bit.
core: Refactor and improve IP detection code

This code introduces a few new things.

* We now do forward and backward IP matching. (Improved reliability
  and order of input images shouldn't matter anymore)

* We now match only points that agree with the epipolar line.

* Our filtering now treats Altitude and Triangulation as independent
  variables. Altitude will switch itself off in the event that it
  doesn't see 2 distributions.

Ultimately this gives us a higher success rate when processing HiRISE
images. My hope is that it transfers well over to Earth.
docs: Fix typo for fill-holes-max-size