allow set up/tear down for events with common dependencies

Some state change events require the same setup to observe them, no
matter which particular change you’re interested in.
add events for power source changes