Give sub-binders different fingerprints (#5614)
This is a pretty egregious mistake in the recompilation checker: in a declaration with multiple binders (e.g. data T = A | B) we were giving all the binders the same fingerprint when referenced, so e.g. an unfolding that mentioned A would get the same fingerprint as if it mentioned B instead. The fix is of course to give them all different fingerprints.