Implemented two-way observations, such that, for each observation
relation, there is not only an observer being registered but also its
observee. This is practical in cleaning up scenarios, because such
bindings do not require centralized measures in those situations.

Now, when a model is removed, its observers and observees can now be
informed and proper cleaning is simple and decentralized. 

Signed-off-by: Jakob Brandsborg Ehmsen <jakobehmsen.github@gmail.com>