audio: Revise inheritance relationships of sound source types

Non-3D and 3D sound sources share many members, so they should
inherit from the common base structure.
audio: Fix pitch calculation in playSound()

Sound sources can have various sampling rates.  The sound mixing
engine have a fixed sampling rate.  We must resample the sources
to match ours.  We just pick nearest neighbor of desired sample
instead of using sophisticated resampling algorithms.

In this process, the input pitch value's definition is changed.
The value becomes just a single float, indicating playback speed
factor.  The value is recalculated inside the engine to enhance
performance in playback sequence.

Also, the logic is shared among non-3D and 3D sound sources to
reduce code size and bug opportunity.