* Avoid unnecessary weak pointer evaluations by caching SoundWave pointer after loading from TAssetPtr
* Encapsulated SoundWave and SoundWaveAssetPtr to prevent getting out of sync
* Prevent sound waves from being garbage collected
[CL 2543325 by Marc Audy in Main branch]
These changes could cause small behavior change, although they appear to be obvioiusly what was intended by the authors
[CL 2486879 by Dan Oconnor in Main branch]