GeoJSON loading performance improvements

1. Allow `ConstantProperty` to optionally return a reference for complex types rather than always cloning.
2. Have `GeoJsonDataSource` use a canvas object for `BillboardGraphics.image` instead of calling `toDataURL` on it.
3. Modify `Billboard.image` property to use the `id` property when a canvas element is assigned.
4. Have `PinBuilder` create a unique id for each pin canvas.
Allow ConstantProperty to be used with HTML elements.

Normally `ConstantProperty` requires `clone` and `equal` functions
for non basic types, but since `HTMLElement` instances support
reference equality; that's not needed in this case.
Update comments and CHANGES

Also fixed deprecated parameter used in viewerDragDropMixin.
Merge remote-tracking branch 'origin/master' into geojson-load-performance

Conflicts:
	CHANGES.md
Merge remote-tracking branch 'origin/master' into geojson-load-performance

Conflicts:
	CHANGES.md
Merge remote-tracking branch 'origin/master' into geojson-load-performance

Conflicts:
	CHANGES.md
Changes after review.

Remove use of canvas.id from `Billboard`, but still allow it for `BillboardVisualizer`
Merge remote-tracking branch 'origin/master' into geojson-load-performance

Conflicts:
	CHANGES.md
Fix CHANGES after merge.
Merge remote-tracking branch 'origin/master' into geojson-load-performance
Move changes to 1.5
Merge remote-tracking branch 'origin/master' into geojson-load-performance

Conflicts:
	CHANGES.md
Improve polygon outline performance and some clean up.
General fixes to upsampling.
Improve extruded polygon outline performance and some clean up.
Avoid using Cartesian3.angleBetween.
Use distance instead of distance squared for subdividing polygon edges.
Merge pull request #2316 from AnalyticalGraphicsInc/geometry-perf

Improve polygon outline performance
Cleanup and added unit test.
Removed some precision loss that was incurred during upsampling.