frontend: refactoring: Generify Events and Listeners

Generified raw ocurrances of Event and IEventListener instances.

Minor adjustment in Event infa:

  - Event#registerListener now accepts also contravariant implementations
    of IEventListener (e.g. you can attach an IEventListener<EventArgs> to
    Event<PropertyChangedEventArgs>)

Along the way there were encountered varios small oportunities to
generify several entity models and get rid of unnecessary casts. These
oportunities have been siezed.

Change-Id: Icddf5780c00c985966e6ae956a401c3ede6a68e7
Signed-off-by: Martin Betak <mbetak@redhat.com>