Use weak references in KVO observation

Hopefully fixes #1206 and #1548.
Could you name this `strongObserver` as you did elsewhere?