Enable asynchronous geometry processing in DynamicScene.

1. GeometryVisualizer now creates static geometry asynchronously.
2. `Clock.canAnimate` was added to prevent the clock from advancing time even when `shouldAnimate` is true
3. Visualizers' update functions now return a boolean value indicating if it is okay to advance time.
4. `DataSourceDisplay.update` now returns false if any of the visualizer update calls return false.
5. The `Viewer` assigns `Clock.canAnimate` the result of `DataSourceDisplay.update`, which prevents time from animated if asynchronous geoemtry is processing.
6. `Viewer.allowDataSourcesToSuspendAnimation` was added to control this behavior in client apps.
Default allowDataSourcesToSuspendAnimation to true.
Update CHANGES.
Add missing documentation.
Add specs and fix problem uncovered by them.
Merge branch 'master' into dynamicScene-buffering

Conflicts:
	Source/DynamicScene/DataSourceDisplay.js
Merge remote-tracking branch 'origin/master' into dynamicScene-buffering
Changes after review.
Merge remote-tracking branch 'origin/master' into dynamicScene-buffering

Conflicts:
	Source/DynamicScene/StaticGeometryPerMaterialBatch.js
Improve DataSource geometry instance attribute performance

Geometry instance attributes are much more expensive to set than I realized when I implemented DataSource geometry batching.  This modifies the batching code to cache the last attribute value and only set it if it's changed.  This improves performance by doing less work, but also greatly reducing the amount of garbage generated in scenarios with lots of geometry that changes color or visibility over time.
Merge pull request #1624 from AnalyticalGraphicsInc/dirty-work

Improve DataSource geometry instance attribute performance
Fix typo.
Merge pull request #1617 from AnalyticalGraphicsInc/dynamicScene-buffering

Enable asynchronous geometry processing in DynamicScene
Merge remote-tracking branch 'upstream/master'