Clean up and centralize loading logic for data sources.
Add CallbackProperty for lazy evaluation

Sometimes you need to generate DataSource information on the fly, which
isn't possible without implementing a customer Property instance. This
new object makes it easy to create custom properties via a callback function.
For example, you could have a label that dynamically changes with the
height of an Entity or range to another POI.

The only place we use this outselves right now is in GeoJsonDataSource
to prevent building a bunch of string up front; which provides a large
performance boost during load.

I also fixed a minor comment typo I found in several places.
Update CHANGES.md
WMTS cleanup

This is some cleanup to some stuff I noticed while reviewing #2275.

1. The WMTS provider is always `ready`, so remove the uneeded if checks and variable.
2. Add spec for WMTS url generation code.
3. Add @relet as a contributor.
4. Update changes (which I forgot to mention in #2275).
Merge remote-tracking branch 'origin/master' into wmts-cleanup

Conflicts:
	CONTRIBUTORS.md
Merge remote-tracking branch 'origin/master' into callbackProperty

Conflicts:
	CHANGES.md
Merge pull request #2282 from AnalyticalGraphicsInc/wmts-cleanup

WebMapTileServiceImageryProvider cleanup
Fix initial geometry outline color.
Remove need to explicitely set depthTest for geometry outlines.

We already compute the correct value automatically in `Appearance.getDefaultRenderState`. This change updates `Appearance.getDefaultRenderState` to apply unset defaults to the specified user options and remove the explicit settings throughout the code.
Merge pull request #2284 from AnalyticalGraphicsInc/outline-cleanup

Remove need to explicitely set depthTest for geometry outlines.
Merge remote-tracking branch 'origin/master' into dataSource-setLoading
Merge pull request #2264 from AnalyticalGraphicsInc/dataSource-setLoading

Clean up and centralize loading logic for data sources.
Merge remote-tracking branch 'origin/master' into callbackProperty
Merge pull request #2281 from AnalyticalGraphicsInc/callbackProperty

Add CallbackProperty for lazy evaluation
Merge remote-tracking branch 'origin/master' into geojson-load-performance

Conflicts:
	CHANGES.md