clean up launch state polling

Don't spam state listeners with a zillion state events while the launch state is polled.
centralize the callback and emitter handler
specify carrot dependencies
emit events on system control and add example