Synchronise on audio.

* The timing spin-loop using sal_TimerRead() in main.cpp:Run is now a sleeping loop in main.cpp:S9xSyncSpeed, reducing CPU usage (increasing battery life) and more closely matching the refresh rate of the LCD for 60 Hz games.
* The audio is kept active but muted if Sound is set to OFF, because otherwise the emulation would not advance due to the above.
* The audio is not muted via S9xSetSoundMute anymore, because that is automatically undone if SNES Global Mute is enabled, then disabled.

Minor changes:
* 3 frames worth of audio are buffered instead of 2. Frames are now skipped if the number of frames worth of buffered audio falls below 2, except if using manual frameskip.
* Volatile variables are read less often in sal_sound.c.

This commit also fixes the following issues:
* The timing is off from a real SNES by 3%~5%.
* Sound may overrun multiple times per second, leading to a data race that causes SNES notes to lengthen, to shorten or to be deleted.