Correct SAS bent linear curve.

Tests shows that at 0x30000000 it still goes up the full amount.
Run tests with the max volume set.
Don't change height immediately on keyon.

This replicates the PSP's behavior, which is a 32-grain lead in, plus the
height remains what it was before until processing happens.
Validate the effect volume in __sceSasRevEVOL().
Return an error for invalid voice in keyoff.

Can't reproduce no error and Every Extend Extra doesn't even seem to be
reporting it.  Most likely it would be happy with the error code anyway.
Don't change height when keying off a voice.

Tests show that the height does not revert to the sustain level.
Validate the sas noise freq parameter.
Fix the default adsr sustain mode.

Probably doesn't matter, games always set it.
Fix PCM looping in SAS.

The parameter specifies where the loop restarts at.
Don't loop PCM samples when loopPos < 0.
Don't read the first 32 samples after keyon.

The way I'm approximating this is ugly...
Merge pull request #5488 from unknownbrackets/sas-minor

Improve more sas correctness