Use more secure error for invalid pagination ranges

* Disallow limit and offset clauses too large for MySQL.
* Make better use of the Offset method rather than allowing it to be touched directly elsewhere.
I'm looking at the github example where they do 404 for repos that a user doesn't have access to.