Models always return surrogates/readonly values for properties

Alright, it's final.  Models need to always return surrogates for their properties in order to ensure state integrity (especially cross-property) and proper ownership.  And where non-modelish types are returns (raw data), they need to be readonly like a surrogate.

In whole, all manipulation should be through modifier methods specific to the nature of the model.  Direct access to modify data only leads to treating the model as the data type, not the intent and purpose.

• InchCoord's doubleValue property and InchLocation's cgPointValue accessor made readonly (matching InchCoordish, but restated for clarity).
	• InchCoord's nsValue accessor added in the same manner, for clarity.
	• Removed “‘readonly’ because it's ours, not yours” comment on InchCoord#nsValue; it's no longer relevant.
• InchLocation's x and y properties changed to type `id<InchCoordish>`, matching InchLocationish and the current implementations, which return surrogates (also restated for clarity).
• InchLocation's cgPointValue property removed, leaving the readonly variant defined in InchLocationish
• Removed InchCoord#setDoubleValue: and InchLocation#setCgPointValue: implementations

Note: Currently the test build is failing due to inability to set property values directly, when previously it was allowed.