Clear tracked object when data sources are removed.
Fix camera heading when north is more in the xz-plane than the xy-plane.
Material support for DynamicPolyline

Originally, we hardcoded DynamicPolyline to always us a PolylineOutline material type because we did not support general materials in CZML.  Now that the DynamicScene and CZML processing are decoupled, the lack of CZML support for it doesn't matter.  This allows users to use any Material we support in DynamicScene that also supports polylines (currently just ColorMaterialProperty and PolylineOutlineMaterialProperty but others are trivial to add).
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 'master' into dynamicObject-name

Conflicts:
	CHANGES.md
Fix typo.
Merge branch 'master' into cameraHeading
Make name a string instead of a property.  It can still change, but it is not time-dynamic.
Add initial parent object support to DynamicObject.
Don't use `ReferenceProperty` for parent because it overly complicates things and provides no real benefit.
Manually merge some changes from DataSourceBrowser branch.
Merge branch 'dynamicObject-name' into dynamicObject-parent

Conflicts:
	CHANGES.md
	Source/DynamicScene/CzmlDataSource.js
	Source/DynamicScene/DynamicObject.js
Merge branch 'master' into dynamicObject-name

Conflicts:
	CHANGES.md
Add back optional name property.
Merge branch 'master' into dynamicObject-name
Merge branch 'master' into dynamicObject-parent
Added skyBoxSources option