Add simple MVVM, command buffering.

Command buffering ensures that all commands in a set of commands (like
"dimmer 58 at 25 go") get sent in one packet, instead of in several
packets, to ensure that they arrive in order.