Automatically recover from the red state

Fixes #9.

This required adding a new state, yellow. Now we've got a complete stoplight. Like #20, it's going to make #12 harder. 

:pager: @justinsteffy 
I think you're right. We already have a `#state` method on the data store, but it doesn't have the same semantics as the light's state. We could store the actual state in there, which would make querying it a lot easier.