* Remove stray extra space
* Add ImageStreamCompleter.hasListeners (and cleanup)
This is mostly just some cleanup of stuff I ran into, but it makes
`hasListeners` protected on `ImageStreamCompleter`, because otherwise
there's no way to track if listeners are registered or not.
* Address review comments