Include checksum of walden JSON file in source checksum
## Problem

When the ETL decides whether a dataset is up to date, it bases that decision off of a `source_checksum` of a dependency. For Walden snapshots, we use the `md5` field of the JSON file.

However, if you build everything, then change metadata in the Walden JSON file, it will not be detected and the data will not rebuild

## Expected behaviour

Any change to the metadata in a Walden file should trigger a rebuild of any downstream datasets.

## Proposes solution

Checksum the JSON file itself as a dependency, not just the data file it references.
diff --git a/etl/steps/__init__.py b/etl/steps/__init__.py
index 581f71277..43c6ae08f 100644
--- a/etl/steps/__init__.py
+++ b/etl/steps/__init__.py
@@ -391,11 +391,18 @@ class WaldenStep(Step):
         return True
 
     def checksum_output(self) -> str:
-        checksum: str = cast(str, self._walden_dataset.md5)
-        if not checksum:
-            raise Exception(
-                f"no md5 checksum available for walden dataset: {self.path}"
-            )
+        if not self._walden_dataset.md5:
+            raise Exception(f"walden dataset is missing checksum: {self}")
+
+        inputs = [
+            # the contents of the dataset
+            self._walden_dataset.md5,
+            # the metadata describing the dataset
+            files.checksum_file(self._walden_dataset.index_path),
+        ]
+
+        checksum = hashlib.md5(",".join(inputs).encode("utf8")).hexdigest()
+
         return checksum
 
     @property
['etl/steps/__init__.py']