Use a global map to track the proxies for an object

This is a little more memory efficient than adding a new property
to every object with a proxy.

Also iterate only over bindings from the watched object in
QtCallbackProxy::eventFilter()