Validate volume inside sceSasSetVolume().

I wonder what a negative volume means?
Return an invalid size error even for VAG = 0.
Fix VAG looping.
Didn't need any special logic here after all.
Decode VAG samples in one shot, not two.
Don't cap predict_nr, just make the table bigger.
Use better replacements for missing space chars.
Fix typo making the first line wrap wrong.
Recalculate numWaitThreads all the time.

Before, it could go negative by having a thread woken a second time
(e.g. because of a delete) before it actually scheduled and woke up.
Correct TLS object save stating.
Add pcmIndex to sas voice DoState().

Otherwise we can get crashes.
Save the state of the PGD info struct.

Not touching any of its internals.
Merge pull request #1956 from unknownbrackets/sas-audio

Fix VAG looping, validate volumes in sceSas
Merge pull request #1958 from unknownbrackets/msgdialog

Improve PPGe replacement char substitution, fix wrapping
Merge pull request #1960 from unknownbrackets/scheduling

Recalculate numWaitThreads all the time
Merge pull request #1957 from unknownbrackets/perf

Small performance improvement in VAG decoding
Merge pull request #1961 from unknownbrackets/savestates

Fix some missing things from save states
Enable "stop" command from Windows menu on Pause Screen
Merge pull request #1962 from aquanull/patch-3

Enable "stop" command from Windows menu on Pause Screen
Validate number of vblanks in multi wait.

Fixes #1922.