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.
Agree with 400. I understand why GitHub has chosen to obfuscate with 404 in so many scenarios, but it isn't technically correct and doesn't really map to what we're doing here. If this request comes in, it's someone screwing around.