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.

Some of this code is from the `dataSourceBrowser` branch and it being brought in early in order to make that eventual pull request simpler and enable further cleanup of other areas outside of that branch.