A support class to forward text buffer events for a decorating text buffer.

This class implements the weak listener semantics documented by the
TextBuffer interface. However, it should be noted that those
semantics essentially no longer apply for text buffers obtained from a
an IDE TextNode because the text node keeps a duplicate list
of listeners with strong references.