$dispose in a component cannot update bindings

This pull request fixes an issue raised by @pgrab: it is not possible to update bindings from the `$dispose` method in a component, because the observer is removed before calling `$dispose`.

Before integrating this pull request, I still have to:
* [ ] add a test case