sound: Call Mix_HaltChannel() directly for muted channels (bug #21426)

As described in detail in the bug report <https://gna.org/bugs/?21426>,
SDL_mixer's notion of a channel that's "not playing" appears to include
channels with their volume set to zero (a direct consequence of setting
Wesnoth's sound effects volume to zero in preferences or through the
[volume] WML action), which results in Mix_FadeOutChannel() doing
nothing, letting the channel resume playing at a later time once the
volume is reset.

For sound sources removed with [remove_sound_source] while the sound
effects volume is zero, this effectively means that once the volume is
reset, the sound sources will continue playing in SDL_mixer-land and
Wesnoth (or more specifically, WML) can't do anything about it because
the associated data structures have been released and the sound sources
don't exist in Wesnoth-land anymore.

Calling Mix_HaltChannel() directly when the channel's volume is already
set to zero avoids this issue and does not negate the point of the
fade-out effect since there is no way to fade out a channel when it's
muted anyway.

Needs backporting to 1.10.