Fix fern test.
Draft of instrument support.

This adds an instrument class for audio support along with a
syntax for specifying timbre.

An instrument is basically a tone generator that can also do
sequencing.  It is possible to make a immediate-mode piano using the
turtle.tone(freq) command.  turtle.tone(freq, false) stops the sound.
The old method turtle.play(song) is still there, and it now works
by schedules a bunch of tone() over time.

An instrument cannot play more than one tone with the same frequency
(it will end the earlier one when another one starts), and it also
only sends a few seconds of tones to WebAudio at a time.  This
architecture keeps the load on WebAudio light, and helps solve the
"too many oscillators" problem.
Add a Piano sprite.

This sprite sounds like a piano instead of a square wave when played,
and it also looks like a piano, lighting up keys when notes are played.
Things interact fine with both play() and tone().

The default turtle sounds is still a square wave: to get a piano, you
need to say p = new Piano, then p.play 'edc'.

This commit also adds some unit tests for Instrument.
More exhaustive ABC notation tests.

This commit adds more exhaustive ABC notation tests as well as tests
of the Piano object, and it fixes a bunch of bugs expoesed by the tests.
It also reorganizes and adds comments to instrument support.
Remove instrument base class.
Incorporate code review comments.

Also, rename Voice to Instrument and remove jQuery dependencies for that
portion of the code, so that it can be used separately.
Improve piano sound by using wavetable data.
Fix a bad typo and rescue the piano sound.
Add turtle volume and option to play without waiting.

And generally respond to code review comments with more comments,
more careful handling of callbacks, and better factoring of code.
(Thanks James!)
Reduce gain of default instrument.
Fix safari bug.
Slurs, delayfollow, delay wavetable construction.
Fix global leak.
Merge branch 'master' into instrument

Conflicts:
	jquery-turtle.js
Merge branch 'master' into instrument
Incorporate code review comments
Fix key signature extras and incorporate review comments.
Add gitignore
Merge pull request #67 from PencilCode/instrument

Improve Music Support