Generalise types of run*Server which never cleanly return

Somewhat more controversial: These functions never cleanly return so `IO ()` can be `IO a`.

On first reading, I figured they forked a thread that ran the `accept` loop based on the `IO ()` return type.

Not clear to me whether this is a breaking API change or whether it's strictly more general. Feel free to reject!

Cheers,