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
Merge remote-tracking branch 'origin/master' into callbackProperty

Conflicts:
	CHANGES.md
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 kml