Read player messages as player_message_t arrays instead of string arrays

Add lots of sanity checks in the player message functions

Make message length limit in M_PBufReadString optional by passing 0

Skip non-playing players when ticking message widgets

Allocate player message contents with Doom's allocator instead of GLib's

Initialize overlay widgets in HU_Init instead of HU_Start

Reset overlay widgets in HU_Start instead of initializing them

Clear Pango layout attributes before setting text

Use memmove explicitly in W_CoalesceMarkedResource; fixes valgrind warning
Assign actors IDs to avoid problems with dangling actor pointers

Fix problems reading and writing game options, which caused desyncs

Totally remove the old actor save pointer system and replace it with
actor IDs; it's slower, but it solves dangling actor pointer problems; I
could keep the actor buffer during load, which would save some hash
lookups, but the overhead seems to be minimal; requires more testing on
larger maps

Save sound origin IDs (because they're always actors) and restore them
after save file load if possible.

Fix a few memory problems discovered by valgrind and address sanitizer

Take a stab at running commands during the finale and intermission,
which would fix the problem where the game gets stuck in intermission;
untested

Let the game engine naturally respawn players who connect/disconnect;
solves problems with ghost players

Lots of reformatting