P001ModelTestsModelWithoutDealloc had a dealloc— Oops.

Turns out that P001ModelTestsModelWithoutDealloc always had a dealloc method, matching P001ModelTestsModelish's functionality exactly.  That was kind of dumb.

• `dealloc` removed from P001ModelTestsModelWithoutDealloc.
P001Model: Smarter dealloc swizzling

The previous implementation had a bug that would cause P001Model's dealloc to get swizzled if the subclass didn't have its own dealloc.

• Uses `class_replaceMethod` instead of `method_setImplementation` so that the method is added if it doesn't exist and replaced if it does.
	• Minor: Since we're no longer using a Method struct for another else, now also uses `class_getMethodImplementation` instead of `class_getInstanceMethod`.
• Fixed the block arguments; blocks only have one extra special argument (`self`), not two (`self`, `_cmd`).
	• Reinstated kMethodTypeEncoding.
• Also, changed my naming scene a bit for clarity (since we have two types with different usage semantics sharing a single variable type):
	• All variables storing IMPs (function pointers with the first two args of `id self, SEL _cmd`) now end with `_IMP`.
	• All variables storing Block IMPs (function pointers with the first args of `id self`) now end with `_BlockIMP`.

Lastly:
• Added a half-ass testModelAndModelWithoutDeallocInitializationAndSurrogate to check for that “Warning: Instance is (already) dead; aborting.” message (although the test won't fail, and checking for failure probably isn't feasible without using something with stubs and mocks like Kiwi).