screen: Propagate hide events to children of the screen.
Add the OnEvent displayable to run actions on events.

By being a displayable, OnEvent is able to invoke actions even when
a screen is not being updated. This is important in the new version
of Ren'Py, which tries to avoid screen updates as much as possible.