use CDOSounds from BlocklyApps if Blockly not available

* extend CDOSounds to support options.volume and options.loop, add Sounds.stopLoopingAudio() and Sound.stop()
* change all calls to Blockly.loadAudio_() to BlocklyApps.loadAudio()
* in BlocklyApps.loadAudio(), use Blockly if available, else use CDOSounds if available (now passed into BlocklyApps appOptions as cdoSounds and stored as BlocklyApps.cdoSounds)

Could also be `options.volume || 1`

```
var options = {};
console.log(options.volume || 1);
> 1
options.volume = 0.5;
console.log(options.volume || 1);
> 0.5
```