Uninitialized variables breaking sound on my machine

"pitch", "volume", "reference distance" and "max distance" are all being initially set to the values of member variables of Sound -- BEFORE THOSE VARIABLES ARE ASSIGNED DEFAULT VALUES. pitch and volume are thereafter automatically assigned new values, reference distance and max distance are not. On some machines, notably mine, this can and does break all sound playback.

This patch: Gives these variables initializer values, consolidates some duplicate code, adds more error checks.