WIP P001Model superclass

So after putting together ObjectSurrogate (now P001ModelSurrogate) and seeing a lot of repeat code in InchCoord and InchLocation, it seemed to make sense to create a superclass that handles most of these model's routine responsibilities.

Scoping down ObjectSurrogate's (now P001ModelSurrogate) possible input data set to a more controlled one (rather than any NSObject) doesn't seem like a bad idea either.  Though standard/Foundation Obj-C would probably allow any class to join in as long as it adopted the right protocol (like NSCoding).  Maybe I'll extract the functionality off later in that fashion.

Note: Currently building, but throwing EXC BAD ACCESSes in tests, due to dealloc messiness, mentioned below.

New P001Model abstract (by definition of having an incomplete implementation and refusing direct instantiation) base class:

- `invalid` and `unset` moved to P001Model from InchCoord and InchLocation
- `NSObject` references all over the place changed to type `P001Model`
- InstanceWillDie notification moved to P001Model's dealloc (also away from InchCoord and InchLocation)
	» However this requires the sub-classes to call `[super dealloc]` before releasing their properties, which is messy.  Need to find something better for this.
	- WIP implementation of setUpProperties and tearDownProperties methods to create and destroy properties for subclasses.  Also, a helper eachProperty: method.

ObjectSurrogate renamed to P001ModelSurrogate:

- `invalid` and `unset` defined in P001ModelSurrogate, since every P001Model will have them

- `_instance.hash` call changed to `[_instance hash]` (NSObject defines a method not a property, so this was causing compiler errors)