Incrementally merge regions with a triangle count below the given SmallThreshold. A Small region is merged to it's most-similar neighbour, as defined by RegionSimilarityFunc. The merge order is sorted by largest Similarity, ie most-similar regions are merged first.