Spark API panic fix.

If the Events channel was requests, but the devices channel wasn't, we
could deadlock. This was because some events trigger device refreshes.

However, if nobody is listening for device refreshes.... the refresh
craches.

Fix it by tweaking the API to force clients to listen for both device
and event updates not just one or the other. This is okay, because we
always intended this usage anyway.