New observers work better with Dereferenceable.

* CopyOnNotifyObserverSet#notify_observers now accepts a block
* CopyOnNotifyObserverSet#notify_and_delete_observers now accepts a block
* CopyOnWriteObserverSet#notify_observers now accepts a block
* CopyOnWriteObserverSet#notify_and_delete_observers now accepts a block
* Agent observer notification uses blocks to better support Dereferenceable
* IVar observer notification uses blocks to better support Dereferenceable
* ScheduledTask observer notification uses blocks to better support Dereferenceable