Optionally construct Viewer with a specified DataSourceCollection

A simple change that allows a `DataSourceCollection` to be passed to the `Viewer` constructor, in which case `Viewer` won't construct one itself internally.  This is useful in an app that is using data sources, but that may or may not have a `Viewer` depending on, for example, whether or not the end-user system supports WebGL.