Arduino pin methods & other API calls.

Implement digitalWrite(), digitalRead(), analogRead(), analogWrite() and pinMode() just like Arduino.
Implement methods to control firmata, like EnableDigitalReporting() and SetSamplingInterval().
Implement I2C read and write via firmata.
Various bug fixes in the core library.
Add tests for some of the above.