Observations:
* Type annotations tend to be verbose, for example:
blink(color1: typing.Union[pblight.Color, pblight.RGB, NoneType], color2: typing.Union[pblight.Color, pblight.RGB, NoneType], pattern: pblight.Pattern) → None
* There seems to be a bug with .. autodata::
The eventual goal here is that the pbdrv functions will be the absolute minimim needed to do the actual I/O to the hardware. Everything else should be implemented in the main library.