WIP: 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.
You could replace these methods with a single method:

```java
protected static <T> Metric makeMetric(final Locator locator, long timestamp, T value) {
    return new Metric(locator, value, timestamp, new TimeValue(1, TimeUnit.DAYS), "unknown");
}
```