Reworked Device, +Button Device, go reads config

Restructured the Device interface into a class which takes an interface,
Added the button device capability,
The go side will read the config file and make objects accordingly.