Merge remote-tracking branch 'origin/issue1603' into visualizer-refactor

Conflicts:
	Source/DynamicScene/DataSourceDisplay.js
Factor out Visualizer interface

It turns out a `Visualizer` instance only needs `update` and `destroy` functions.  Also start cleaning up other visualizer to conform to the interface and remove uneeded cruft.
Start refactoring Datasource interface

Manually extract all non-dataSourceBrowser specific changes out of the `dataSourceBrowser` branch.
Turn DataSource get methods into ES5 properties.
Add an offset to the grid material.
Merge remote-tracking branch 'origin/master' into grid-offset
CHANGES.md
Merge branch 'master' into dataSource-refactor
getIntervals should be intervals.
Fix path visualization when using composite properties.
Start of path subsampling specs.
DynamicPathVisualizer specs and fixes

Unit test a bunch of untested code and fix issues discovered.  There are still issues that need to be addressed.
More specs and fixes for path visualization.
Handle path resolution of 0 (and invalid negative values).
Merge remote-tracking branch 'origin/master' into dataSource-refactor
Merge branch 'dynamicScene-rectangle' into dataSource-refactor
Update CHANGES
Merge remote-tracking branch 'origin/master' into dataSource-refactor
Make DataSource.update optional.
Merge branch 'dataSource-refactor' into kml

Conflicts:
	Apps/CesiumViewer/CesiumViewer.js
	Source/Widgets/Viewer/viewerDragDropMixin.js