Move most of the led update code to the workqueue.  Closes #3.