Refactors LogPruneStrategies to be Threshold centric

LogPruneStrategies had a bunch of LogPruneStrategies that were
 different only on the Threshold implementation they used. This commit
 makes this explicit by having a single ThresholdBasedStrategy that
 accepts the proper Threshold implementation.

Tests to follow.