Improve cookbook entry for error pages in 2.3+

This PR cherry-picks the improvements from #4293 that apply to 2.3 as well (almost all!).

It also addresses some of the considerations in #4181. 
I like including some technical details, but I think (except for any typos) that this sounds a bit smoother:

```rst
When an exception is thrown, the core ``HttpKernel`` class catches it and
dispatches a ``kernel.exception`` event. This gives you the power to convert
the exception into a ``Response`` in a few different ways.
```