use model.frameLength rather than display.frameLength, and thus avoid having to pass the display object to the sound component
add correct partial decoding behaviour of AY ports as per http://www.worldofspectrum.org/faq/reference/ports.htm
fiddle the signature of ioBus.write to take the current tstate number, so that the sound module doesn't need a direct handle to the processor to call getTstates
update credits/docs
avoid error when running on a browser that supports Audio elements but not the WebAudio or AudioData APIs
Refactor JSSpeccy.Sound into SoundBackend (initialised globally on startup) and SoundGenerator (constructed for each Spectrum instance)
use exact frame frequency (as calculated from the clock speed of the Spectrum model) within sound generation routines
implement more accurate frame timing (use requestAnimationFrame to trigger frequent iterations, and check clock on each iteration to run as many Spectrum frames as required) to avoid audio glitches
reorganise jsspeccy.js startup code for readability
Add control for enabling/disabling sound
version bump