Defer freeing window until after EVENT_WINDOW_CLOSED
Fix con_puts buffer overread

ASan reports a 2K read from a small string literal.

Also, fix silly double copy in con_add_buffer_line and delete too-short
memset in con_add_buffer_line.
Pass glow_values as array<> to retain size information
Fix array underread when no glow is defined

ASan reports an access to array[-1].
Fix array overstep in collide_weapon_and_wall

This is the same mistake as fixed in ca4f9e8b30, but in a different
function.
Rely on libc strdup if DEBUG_MEMORY_ALLOCATIONS is unset

If !DEBUG_MEMORY_ALLOCATIONS, our strdup is not special.  Rely on the
compiler one, which might be.
Remove DPMI-based DO_MEMINFO
Fix audio file matching broken by cb4fd7c1b4
Make Segments[] a C++ array