Simplifying the MetricsPersistenceOptimizer code 

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.
This should be a static field so it isn't evaluated every time this method is called. It isn't going to change in any event.