Add a batched signal subscription interface on EditorSession

The UI often only needs to update once per redraw for many signals. Make
this common use easy for consumers by exposing a way to have a particular
signal emitted only once per redraw.

Fixes #610