The traits [Observable] and [Observer] construct the typical observer-pattern.
The messages parsed in between [Observable] and [Observer] is the generic variable T.
Because keeping track of all [Observer]s when implementing [Observable] can be hard,
this module also contains a [ObserverList] where [Observer]s can be
[attached][ObserverList::attach], [detached][ObserverList::detach] and
[notified][ObserverList::notify].