Move pagination logic to preserve filter query parameters (school_id,
order_by, asc, per_page) when navigating between pages.
- Added QueryParams field to Pagination struct and pageURL() helper
- Server-side: buildListCoursesQueryParams() encodes active filters into
pagination links as query string
- Client-side: setupPaginationLinks() intercepts pagination link clicks,
reads current filter state from DOM selects, and constructs full URLs
with all parameters preserved
- Added data-paginated/data-base-url/data-current-page attributes to
pagination nav for JS targeting
Closes#1