Makes the bulb state modification a goroutine

There are, at most, 20 steps to be executed, with a 50ms wait for each
one -- so 20 * 50 is 1s.  This is a long time to wait for an HTTP
response; especially given that, if all the preconditions are met, it
should just work at this stage.

By executing in a goroutine, we provide more responsive feedback to the
user.

Also, I wanted to play with goroutines.