Return removeable handle from addWeakObserver.

`addWeakObserver:selector:name:object:` now returns an opaque handle that can be removed with NSNotificationCenter's `removeObserver:` method. 

This allows for temporary and cancelable observation.