Make sure that noTone cancels the tone timer

Note the failing test.  this.clock.tick() doesn’t work for us here
because Piezo uses nanotimer.  I can’t figure out how to progress the
clock to make the test pass.
reworking the test so that the nanotimer can fire and we can test that tones get destroyed
Make sure that existing timers get cleared when new tones are played
Creating a frequency function so that we can use the piezo with note frequencies

When someone wants to play the note A, it is common for them to use the
frequency (440) instead of the obscure duty cycle (1136).  This gives a
convenience function to achieve that.
Merge branch 'master' into piezo-improvements

Conflicts:
	lib/piezo.js
	test/piezo.js
Fixing merge problem
Use frequencies for notes instead of duty cycles
Remove the race condition with clearing the timers.  Because stopping the tone was based on a timeout.  Two consecutive notes could cause the first timer to clear, but then the callback would clear the next (wrong) timer.
Merge pull request #1 from BrianGenisio/piezo-improvements

Piezo improvements