Add `equals` function to `Property` interface and implement it in all properties.

Still need to write specs.
Add a few specs.
Add specs for remaining Property.equals implementations.

Also fix a few issues which the specs uncovered.
Merge remote-tracking branch 'origin/master' into property-equals
Merge branch 'master' into property-equals
Merge branch 'master' into property-equals
Add PolylineOutlineMaterialProperty.equals.
Update CHANGES
MaterialProperty -> Property
Merge branch 'master' into property-equals
Merge branch 'master' into property-equals
Replace prototype equals with non-prototype equivalent.
Merge branch 'master' into property-equals
Merge pull request #1237 from AnalyticalGraphicsInc/property-equals

Require Property implementations to implement a prototype equals