first cut at lazy evaluation of Dataset.variables and Dataset.dimensions