Move control of event trap inside the EventManager

Management of the event trap is not related to the IME. Moving the
coordination of the disabled and readOnly flags inside the EventManager
better hides these concepts from external consumers.
Always overwrite the event trap disabled flag

Additional code complexity around the event trap disable state does
not provide any real benefit, and still has some difficult to fix
corner cases to completely guarantee external manipulation can't cause
any issues. As each EventManager instance creates it's own event trap,
so this change makes it clear that the EventManager expects complete
control of it's own event trap.
Make compound event signal name less generic
Unsubscribe event delegates when the EventManager is destroyed

To make this feasible, a consistent interface has been added to
compound and normal event delegates. This allows better impl
hiding from the rest of the EventManager class.