Overhaul the Device API (and update the examples)

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:

```ruby
eyes = NinjaBlocks::Device.list(:device_type => 'rgbled').first
eyes.actuate('FFFFFF')
```

Also, wrap subdevice metadata in its own class.