Fix the ::sound() function

Because it was badly broken, very, very, badly broken. Random 1.5x factors, backwards logic checks, out-of-order multipliers/checks, and random "return" lines were only part of it. This also fixes alarm clocks and makes the sound indicator count everything within 1 tile of the player, meaning smashing and footsteps now add to the sound counter.