Support preventPropertyObserver
Finish refactoring of listeners to observers

This adds support for map, range, and array observers, with a design
coherent with the new property observers.