* Fix image cancellation to be stream-scoped instead of widget-scoped
* fix(OneFramePlaceholderImageStreamCompleter): make onLastListenerRemoved callback synchronous with removing the last listener
* fix(OneFrameMultiImageStreamCompleter): remove unnecessary blank line in code
* fix(OneFramePlaceholderImageStreamCompleter): cancel pending requests when only cache listener remains
* fix(OneFrameMultiImageStreamCompleter): ensure onLastListenerRemoved callback is invoked only once