Add `name` property to `DynamicObject` and support it in `CzmlDataSource`
Add `DataSource.getName` function.

1. Data sources now have a `getName` function so that they can be titled for the user.
2. Added utility `getFilenameFromUri` function which takes a url and returns the last segment; which is then used to determine a defualt name if none is provided to the data source.
3. Hooked up CzmlDataSource and GeoJsonDataSource to use new functionality.
Add specs for `getFilenameFromUri`.
Update changes.

Also fix DynamicObject.id documentation, it has always been required to be a string.
Merge branch 'dynamicObject-name' into kml
Auto-detect if a url is a kml or kmz file.