Automatically recover red lights

Fixes #9. See #22 for the first attempt.

This is mostly untested, but I think the basic idea is correct. The data store itself is responsible for determining the color of a light. That way it can do it in an efficient manner.

:pager: @justinsteffy 
A necessary evil, unfortunately. I hate how defining a method in Ruby ratchets up your LOC.