Fix communication between remaining clients when one client freezes.

Problem persisted until the frozen client drops completely, or unfreezes (net connection is restored).

To reproduce, test with host and 2 other clients, and freeze one client with kill -STOP or by pausing the net
connection somehow.

Cause was lack of flushing, due to an inverted condition exposed in b9cc7702b7dc7ff3781f32f69b9cac110ebd6b98 and
introduced in c1ca4d2d343e01ab9eb672bf6d3b2809e11efe19. Would probably trigger before
b9cc7702b7dc7ff3781f32f69b9cac110ebd6b98, for any remaining clients that freeze for any reason (for example, because
of <2.5 FPS or momentary hard drive swapping) for more than 400ms.
Be more consistent in ping display, show ping ≥ 4000 as ∞.
Put the unused MAX_BYTESPERSEC define out of its misery.
Fix Nexus AI unable to build units.

Nexus was building units with an unresearched sensor (equivalent to the default sensor). Since
6365f2dbec51abb8ac2509c0623b54dce3e655fd, Nexus can no longer build unresearched units.

In the tutorial, the designed MG viper wheels would also use the same unresearched sensor.

Replaced unresearched DefaultSensor1Mk1 with ZNULLSENSOR. Removed special case for tutorial in
7079ad295112abcd83e6be1e7c172d36aec64c25, which is no longer required.
Fix unconventional reported unit count on selecting all units of same type.

Previous unconventional behaviour was to consider the set of previously-unselected droids becoming selected, and
report the size of the set plus the size of the set of types of droids in the set.

Iff there was exactly one droid of each type previously selected, and there was at least one unselected droid of
each selected type, then the reported unit count would coincidentally be correct.

Fixes ticket:3479.
Show "[PlayerName] has left the game." to all players again.

Fixes ticket:3461.
Update zlib to 1.2.7.
Don't spam assertions while artillery is assigned to allied sensors.
Let CB sensors defend allies too.
Only play ID_SOUND_ARTIFACT_RECOVERED to the player picking up the artefact.

Fixes ticket:3488.
Merge branch 'bugfixes' into 3.1
Merge branch 'bugfixes' into 3.1
Make sockets nonblocking as workaround for socket calls unexpectedly blocking.

For some weird reason, select() sometimes returns that a socket write would not block, but the socket write does
block, anyway.

On display in the bottom of a locked manpage for select(), stuck in a disused lavatory with a sign on the door
saying "Beware of the Leopard":
BUGS
       Under Linux, select() may report a socket file descriptor as "ready for reading", while nevertheless a
       subsequent read blocks. This could for example happen when data has arrived but upon examination has wrong
       checksum and is discarded. There may be other circumstances in which a file descriptor is spuriously
       reported as ready. Thus it may be safer to use O_NONBLOCK on sockets that should not block.

This would explain a socket read unexpectedly blocking, although the issue is actually a socket write unexpectedly
blocking.

Fixes ticket:3410, or else.
Fix game mechanics bug allowing one truck to claim 10 derricks at once.

Abandoned structures with no cost now slowly deconstruct over a period of one minute.
Fix commander unit count on loading games.
Add error sound, and text when you can't add any more units to the Commander.

Fixes ticket:3513
Fixes ticket:3062
Add a work around and a assert to help out with the savegame issues described in said ticket.
Close ticket #3154
Add missing header for last commit
Merge branch 'bugfixes' into 3.1
Assert on cyclic research dependencies instead of doing an infinite loop.

Spurious assertions are possible in the case that the research tree is excessively interconnected, such as
researches 31-40 all depending on all of researches 21-30, and researches 21-30 all depending on all researches
11-20, and so on. Although it probably shouldn't assert on excessively interconnected research trees, the loop as
written could take a ridiculously long time, anyway.
French translation update by Amiral JCDG.

Closes #3512.