I think we should add SPI methods like this to interfaces rather than adding them to `AbstractDataset`, like we did with `Mergeable`. If a feature in the SPI isn't strictly necessary, then the interface method allows us to test for its presence, rather than catching `UnsupportedOperationException`. That may not be the best solution for `getSize()` (maybe that's an API method?) but I think it is for `getLastModified()` because a dataset implementation doesn't necessarily have to provide that info. We can always assume it is stale and replace it.