Add QueueCommunicator

This will be run in a thread by the display to continually receive
commands from the queues (which will be maintained by a StreamQueueProxy
in its own thread).

As a side note, non-blocking IO requires a lot of threads.
Make QueueCommunicator's sleep delay when rx empty a constant variable
QC: Only send a command if it is non-null
Add CommandProcessor

This will be implemented by ProtocolSelector and used by
QueueCommunicator. I might generify this interface in the future
(Processor<Command> or similar), but that would take nasty reflection
and I don't really see a need for it at this time.
Make ProtocolSelector implement CommandProcessor
Change QueueCommunicator to use CommandProcessor

Polymorphism for the win.
Document QueueCommunicator