Firmata refactor

- Refactor the public visibility of the underlying firmata implementation
- Refactor the firmata adaptor to use Gobot Event primitives
- Add "Once(*Event, func(interface{}))" Event function
  - This function executes the provided function once on the Event and then removes the function from the list of callbacks