Piezo improvements

Julian,

These are the changes I am proposing from [this conversation](https://github.com/rwaldron/johnny-five/issues/398#issuecomment-47657644):
1. Fix `noTone` so that it actually stops playing
2. Create a `frequency` function that calculates the duty cycle of the tone
3. Use frequencies for notes instead of duty cycles.  

Note that the interface to `play()` doesn't change at all.  It just lets us represent the notes in something that it more familiar to most musicians.  In other words, frequencies can be found easily.  Duty cycles always need to be calculated from frequencies.  

Also note that this PR includes tests but does not yet include examples or documentation.  
Can you clarify these changes? I'm just curious is all—seems like a good opportunity to learn something :)