Give it a more meaningful name `BroadcastEventsObserver` and teach it to
support 3 different way to add itself into the chain of
`BroadcastHandler`s: at the very beginning, through a regular
`RegisterBroadcastHandler()` method or simply do not add it at all.
Addition of cloning also allows us to add regular setters for JSON
object and arrays that would clone a passed object to ensure each object
can only have one parent.