Clean up and centralize loading logic for data sources.
Merge branch 'dataSource-setLoading' into kml-dev
Clean up promise handling in KML loading.

Add some specs to make sure promises resolve/reject as expected.