Core: Add thresholding of lower 0.1% of Interest Points

The lower percent of interest points are likely due to floating point
noise in the integral image. I discovered this in the unit test.
Core: Prevent clustering from finding null sets.

If there is just one outlier before, it would calculate a zero
variance. This is true, however on the next step that prevents
distances from being calculated. Now we prevent the variance from
going below double's epsilon.
core: Have altitude clustering happen after triangulation clustering.

Altitude's inlier cluster is assumed to be the largest cluster.
Core: IntegralAutoGainDetector reuse code from vw::IIPD

IIP == IntegralInterestPointDetector
all: Update gitignore

We've all written new tools and unit tests!