Subclass dealloc ModelWillDie swizzle-wrapping

P001Model subclasses' dealloc methods are now wrapped with an outer dealloc that posts a ModelWillDie notification before continuing on to the original dealloc.

In P001Model:
• Removed partially-implemented setUpProperties, tearDownProperties, eachProperty:.
• Moved `postNotificationName:@"InstanceWillDie"` from the dealloc to a `dealloc_withModelWillDie_IMP(id self, SEL _cmd)` function, which calls dealloc_withoutModelWillDie after posting the notification.
•  Created swizzleDeallocForModelWillDie and unswizzleDeallocForModelWillDie class methods: the former attempts to use swizzling to move dealloc's implementation to dealloc_withoutModelWillDie, and add the dealloc_withModelWillDie_IMP as both dealloc and dealloc_withModelWillDie; and the latter for reversing the changes.
	» Adding it in both places ensures we can alway get to the implementation we want without ambiguity.  This could be thought of as two differing implementations (`dealloc_withModelWillDie` and `dealloc_withoutModelWillDie`) and a `dealloc` alias to `dealloc_withModelWillDie`.
	» Both are safe to call multiple times; they store an association object boolean on the Class that reports if the swizzle has already been done or undone.
	• kModelWillDieSwizzleAssociationKey added, for tracking the association object added to the Class.

Other:
• P001ModelSurrogate updated to use `modelWillDie:` instead of `instanceWillDie:`.
• In P001ModelSurrogate's init, added a safety check and NSInvalidArgumentException if the instance passed in is nil.
• P_001InchCoordProxyTests: Basic testInstanceAndProxyInit test added, which creates both an InchCoord and a proxy and makes sure they didn't fail.
	» This allows other tests to be simpler; if they were to fail from a bad init, this test would too.