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.