Adds Tone functionality

Reopening against configurable branch.

Still have some work to do here, but submitting this now for review.

To do: 
- Make duration optional
- If duration is optional, make sure `noTone()` is called during a systemReset

Note: It would be helpful if the call to firmataExt.reset() in the systemResetCall function of ConfigurableFirmata was before the pins are reset to their default modes. This would enable the reset function of any particular feature class to perform any cleanup based on a specific pin mode. For example, ensuring that `noTone()` is called for any `TONE` pins. I'm not sure if this has any negative effects yet.