Reduce DataSegment memory usage

Use canonical Strings to store dataSource, dims and metric names
instead of storing repeating strings, helps in reducing memory usage of
coordinator when storing tons of DataSegment objects.
String.intern() allocates memory into the permanent generation, whereas Interners does not.