Pagination
Page controls that take a total, because that is what the data layer can give you.
It takes `page`, `perPage` and `total` rather than a ready-made page object, because Askr's `TQuery.Paginate` returns the rows and does not count. A page object here would promise something the data layer does not deliver; the app knows the total from its own `Count` and passes it in. Give it `href` and each page becomes a real link that can be opened in a new tab and copied. Without `href` the controls are buttons and `onnavigate` is called instead. The page number is text, not a list of links. Fifty pages is fifty tab stops to get past, and nobody is looking for page 37.