Require Property implementations to implement a prototype equals

The idea is pretty basic, All `Property` implementations are now required to have a prototype `equals` function which returns true if the two properties will generate the same values.

This is needed for the Geometry & Appearance batching work being done in the dynamicScene-geometry branch (primarily for grouping materials together).  To make reviewing that eventual pull request easier, I'm opening this up separately.