text: Title: In CI, refresh `nltk_data` cache if the hash of `index.xml` differs from the cached hash
  Body: Rather than simply caching `nltk_data` until the cache expires and it's forced to re-download the entire `nltk_data`, we should perform a check on the `index.xml` which refreshes the cache if it differs from some previous cache.
  
  I would advise doing this in the same way that it's done for `requirements.txt`:
  https://github.com/nltk/nltk/blob/59aa3fb88c04d6151f2409b31dcfe0f332b0c9ca/.github/workflows/ci.yaml#L103
  
  i.e. with `${{ hashFiles('...') }}` using a downloaded `index.xml` from https://raw.githubusercontent.com/nltk/nltk_data/gh-pages/index.xml. Alternatively, with some other hash function.
  
  ### References:
  * HashFiles documentation: https://docs.github.com/en/actions/learn-github-actions/expressions#hashfiles
  
  ---
  
  - Tom Aarsen