Don't use fgets() when we might get EAGAIN
Our tor_fgets() code, added in #20988 (moved), tries to make fgets() behave as we expect with nonblocking sockets. But really, fgets() is not such a great choice for nonblocking sockets in the first place! Let's use direct fd-level IO for those instead.