Avoid duplicating connections between ref and its ref model
These two connections should be established once in constructor, not on every call to setter. Because every time when the setter is called, a new connections are established which are not bound to the lifetime of model object being set. But, the model object assigned is not managed by this Ref object, and will be destroyed without any notice, most importantly without calling setter with null argument which would be the only way to clean up these extra connections.
Replaces !38 (closed)
(cherry picked from commit b114d6e1)