Eliminate Visualizer overhead

This is a major performance improvement when dealing with a large amount of entities. Such as in the recently added [Custom DataSource](http://localhost:8080/Apps/Sandcastle/gallery/Custom%20DataSource.html) example.

1. Eliminated the overhead of non-Geometry visualizers during `DataSourceDisplay.update`.
2. `EntityCollection` and `CompositeEntityCollection` now include the array of modified entities as the last parameter to their `onCollectionChanged` event.
3. Fixed a bug in `Event` that would cause a crash if an event handler unsubscribed to the event in its callback.
4. Minor performance tweak to `AssociativeArray.set`
5. ran `sortRequires`
Assuming we switched it to an array, in `_onCollectionChanged` we don't know if the changed entity is already being visualized or not, so  we would have to call `indexOf` on the array to find out, which is going to give us a big hit.  We could check if `_billboardVisualizerIndex` exists, but I want to get rid of storing extra data on the entity (to avoid changing the hidden class) and will eventually have `_entitiesToVisualize` be an object with any associated data (like `ModelVisualizer` already does).

That being said, I'm open to ideas if you have them.