Generic alternative to Observable.
This observable replacement has to goals :
- no more cast is required because of generic defition.
- Since this is an interface and not a class. There is no more
multiple heritence constraint.
Observable implmentation must call its ObserverManager Notifiy method
each time a significant change relevant to obervers occurs.