Overhaul the Device API.

Instead of passing a GUID as the first argument, have each `Device` instance encapsulate a particular device, and put the `list` method on the class.

For example:

eyes = NinjaBlocks::Device.list(:device_type => 'rgbled').first
eyes.actuate('FFFFFF')

Also, wrap subdevice metadata in its own class.
Overhaul the examples.