Better validation for InchCoord

• Added a _badSet ivar, like what's done elsewhere.
• Added an internal read/write doubleValue property.
	• doubleValue getter synthesized now.
	• Added a setDoubleValue: method, which unflags _unset and flags _badSet if the new value isn't a finite number.
	• Using this instead of direct ivar access everywhere except the plain `init`.
	• manipulateAsDouble: simplified to two lines (could be done in one but I like keeping the `formerValue` around as a local for the duration for manip method scope) since all validation is done in setDoubleValue:.
• Plain `init` no longer piggy-backs off of `initWithDouble:`;  instead sets _doubleValue to the unset value (NAN) and flags unset on and badSet off.