Give `rerender` a callback.

So that, for instance, clients can scroll to the bottom of conversations after re-rendering
them.
Fixup documentation for `rerender`.