Rewrite decodeAudioData to return a promise.

It still takes the callbacks, although they are now optional and noted as legacy.
Update ReSpec to 3.2.14, adding promises support.
Remove trailing whitespace.
Merge pull request #315 from domenic/decode-audio-data-with-promises

Decode audio data with promises