Some of the broadcasting events only properly work with full injection
method (`BHIJ_Root`) and some additional work was required to implement
them for `BHIJ_Registered`.
Althought support for `HandleText()` and `HandleLocalized()` events
cannot be perfect with `BHIJ_Registered`, current method should work
good enough for most cases.
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.