Add support for listening and blocking for requests separately.

This also allows usage without signal handling.