Add Python 3.11 and 3.13 support (#4236)
<!-- CURSOR_SUMMARY -->
> [!NOTE]
> **Medium Risk**
> Broader Python version support and CI matrix changes are mostly
low-impact, but dependency constraint updates (notably
`unstructured-ingest`) and new interpreter compatibility can surface
runtime/packaging issues.
>
> **Overview**
> Adds **Python 3.11 and 3.13 support** by widening `requires-python` to
`>=3.11, <3.14`, updating package classifiers, and bumping the
`unstructured[ingest]` extra’s `unstructured-ingest` lower bound to
`>=1.4.0`.
>
> Expands CI to run `lint` and multiple unit-test jobs across Python
3.11/3.12/3.13, and moves `test_json_to_html`/`test_json_to_markdown` to
`ubuntu-latest` runners. Also aligns static tooling by setting `ruff`
`target-version=py311` and `pyright` `pythonVersion=3.11`, bumps the
library version to `0.20.0`, and removes a dead pre-3.8 conditional
import in `unstructured/nlp/patterns.py`.
>
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
72e9dd88a6bed78c38dce00b8bcf182cbcf58816. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->