Cleanup StoreFileMetadata.java

StoreFileMetadata.java uses a `isSame` methods which is essentially `equals` I think we should clean it up and also provide a `hashCode` implementation.
Correct [equals](http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html#equals(java.lang.Object)) implementation supposed to be reflexive. In other words the following test should pass:
```
        StoreFileMetaData test = new StoreFileMetaData("test", 0, null, null);
        assertEquals(test, test);
```

Maybe `equals` is not a good substitution for `isSame` here.