Ports the server-pagination row-limit fix from plugin-chart-table (#41024)
to the ag-grid table, which shared the same buildQuery logic and therefore
the same bugs:
- Paging past the configured row limit produced `row_limit: 0`, which the
backend treats as "no limit" rather than "no rows" — silently removing the
cap and returning more rows than configured. The page is now clamped to the
last page that still falls within the limit, and per-page `row_limit` is
capped to the remaining rows.
- On a filter-change reset the per-request (last-page-capped) `row_limit` was
persisted into `ownState.pageSize`, shrinking the page size. The reset now
restores the full first-page `row_limit` and persists the user-selected page
size.
Adds unit tests mirroring the plugin-chart-table coverage.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>