Support detached ReferenceProperty instances

Previously, ReferenceProperty required that it's reference was always
resolved.  This enforces early failure for bad data (such as a CZML file
that references a non-existent property).  Unfortunately, this lead to
problems when manipulating data on the client that would result in
temporary or permanent detachment of references, for example #2044.

In order to address this, I've made a slight change to the reference
semantics which cause a ReferenceProperty that already has a value
to maintain that value if it ever becomes detached (i.e. the entity
it references is removed from the target collection).  It will also
automatically reattach if the reference becomes valid again.  It
is still an error if a new reference is completely invalid (i.e.
the reference was never resolved a first time).  This still provides
early failure in the cases we want it and more flexibility in the
cases we don't.  However, do to other changes in the property system,
we could propably remove this requirement as well if it ever becomes
a problem.
if we ever
Merge remote-tracking branch 'origin/master' into detached-referenceProperty

Conflicts:
	CHANGES.md
Merge remote-tracking branch 'origin/master' into detached-referenceProperty

Conflicts:
	CHANGES.md
Merge remote-tracking branch 'origin/master' into detached-referenceProperty

Conflicts:
	CHANGES.md
Merge master to detached-referenceProperty
Merge pull request #2217 from AnalyticalGraphicsInc/detached-referenceProperty

Support detached ReferenceProperty instances