Clean string metrics optimizer

There are 4 classes related to the MetricsPersistenceOptimizer 
GenericMetricsPersistenceOptimizer and StringMetricsPersistenceOptimizer. The creation of these classes is controlled by the MetricsPersistenceOptimizerFactory class. They do a simple operation, whether to persist a string metric or no.

In this PR, I took the code out of StringMetricsPersistenceOptimizer and added it to AstyanaxWriter. Also added unit tests for it in the MetricsIntegrationTest class. Removal of the MetricsPersistenceOptimizer also is a part of this PR.
why not inline this logic in the `shouldPersist` method?