Try using INT_MAX, not SOMAXCONN, to set listen() backlog.

Fall back to SOMAXCONN if INT_MAX doesn't work.

We'd like to do this because the actual maximum is overrideable by the
kernel, and the value in the header file might not be right at all.
All implementations I can find out about claim that this is supported.

Fix for 9716; bugfix on every Tor.
Merge remote-tracking branch 'public/bug9716_024'