Start refactoring to support multiple sound engines

- Restore original sound engine from PrBoom+
- Move current sound engine to s_sndnew.c
- I_PlaySong takes a `bool looping` instead of an `int looping`
Refactoring continues
Add new s_sound.c
Refactoring now compiles

Delta-sync games use the new sound engine

Other games (including command-sync games) use the original sound engine

Update the Code::Blocks project
Clean up sound engines a little

Don't run deltaclient-specific sound routines when not a deltaclient
Clarify some small parts in s_sndnew.c
Resolve merge conflicts in s_sndnew.c
Fix bug causing commands to pile up clientside

Rework logic in sound engine 2, it looks like the bugs are gone now

Only try to log commands if sync log is enabled (only partially works)

No view restoration is necessary clientside, remove this

Fix off-by-one when removing player commands

SOUND_LOG becomes LOG_SOUND in s_sndnew.c
Fix command-based extrapolation

start_sound_at_volume no longer exists, update logging calls

Fix repeat sounds (like the chaingun)

Can use D_RandomRange in the new sound engine without a check for
DELTASYNC
Switch extrapolation method back to P_MobjThinker, there appears to be no significant difference