Completely overhaul driver and adaptor interfaces
Merge branch 'dev' into refactor_interfaces

Conflicts:
	adaptor.go
	driver.go
	gobot.go
	robot.go
	test_helper.go
	utils.go
Remove ToJSON methods and create JSON constructors
Add Piner and Porter
Refactor firmata to use new adaptor interface
Refactor gpio to use new driver interface
Refactor ardrone to use new driver and adaptor interfaces
Refactor beaglebone to use new adaptor interface
Refactor digispark to use new adaptor interface
Refactor i2c to use new driver interface
Refactor edison to use new adaptor interface
Refactor joystick to use new driver and adaptor interfaces
Refactor leap to use new driver and adaptor interfaces
Refactor mavlink to use new driver and adaptor interfaces
Refactor mqtt to use new adaptor interface
Refactor neurosky to use new driver and adaptor interfaces
Refactor opencv to use new driver interfaces
Refactor pebble to use new driver and adaptor interfaces
Refactor raspi to use new adaptor interface
Refactor spark to use new adaptor interface