Merge branch 'feature/models-and-surrogates' into feature/puck-dynamics

Also switched README.md over to feature/puck-dynamics again.
Created classfor() macro

Created a super-cool `classfor()` macro which turns a class identifier into the `Class` pointer-type for the given class.

The intent here is to avoid the odd-looking `[… class]` and `….class` we all we want is the Class from a given static identifier (not the class for a given instance, which is something that a obj-c call to `class` makes sense for).  Additionally, I'd like to try to improve efficiency and compile-time safety where possible (also to satisfy my own distaste of something like this not being part of the Objective-C language).

Danger: Will exit hard and fast (at runtime) in DEBUG, due to use of getRequiredClass.
Converted existing calls to classfor()

Converted existings calls of the forms `[«class identifier» class]` and `«class identifier».class` to `classfor(«class identifier»)`.
Minor (yet crashing) typo in SceneForCG#circleEdgeColor

Fixed a minor typo in SceneForCG#circleEdgeColor; `sCircleFillColor` was being referenced instead of `sCircleEdgeColor`.  Fixes crash during rendering when switched over to CoreGraphics mode.
Checking in all Pods/*

Decided to check in all files under the Pods directory; although everything should keep working without these, it's a pain to have to run `pod install` every time I change branches with differing (unmerged) pod configurations.

Also:
• Removed Pods-related gitignores.
• Updated README.md's build instructions.
Updated CocoaPods to 0.22.1

Updated CocoaPods (the gem) from 0.20.2 to 0.22.1 (latest) and ran a clean `pod install` (on an emptied Pods dir).
Updated installed pods

Updated the installed pods (`pod update`).  Looks like the net result of this is that FontAwesomeFactory went from version 1.1 to 1.2.
Changed all Pod schemes to shared

Changed all the Pod-related schemes (there appears to be one per pod and a central Pods one now in 0.22.1) to be shared, and thus checked in.  This should fix the Travis build.

Also, a line was added to Pods-resources.sh.  Not sure why it didn't do this before.
P-001 scheme Pod dep added to scheme build target list

In Xcode, changed the P-001.G-imr scheme's Build leftsidethingy (phase? mode? product type?) to build the Pods (Pods.a) target before P-001.G-imr (and thus also before P-001 Tests) in order to get `xctool test` on a clean project to build.

However, leaving the `xctool build -scheme Pods` script step in .travis.yml since just `xctool test` as a single step breaks on Travis-CI.  Yeah, I know: insanity.
Update branch 'feature/puck-dynamics' to latest 'master'

Hand-merged changes in:
	Podfile.lock
Pod updates for feature/puck-dynamics branch

1. Ran `pod install` (after rm-ing `Pods/`); and thus a bunch of changes related to MAZeroingWeakRef due to the 0.22.1 upgrade and including all of Pods/*.
2. Re-shared all Pods-related schemes (including the new Pods-MAZeroingWeakRef) and added the Pods scheme back as the first step of P001's build.
Updates to new classfor() syntax
Switched Tests to use .-based accessors

Switched InchCoordProxyTests and InchLocationTests from using getter and setter methods to the dot-notation setters and getters.  The “#pragma clang diagnostic ignore” lines that were recently added to each model's P001ModelSurrogate category make this possible without any warnings or errors.

Note: This turns the mistake that we've been calling setters on surrogates for a while now (which are by nature readonly) into a hard error.  Which is good, but bad. YKWIM

Minor:
• Moved object sets in InchLocationTests#testXYSurrogation to inside the brackets, matching InchCoordProxyTests's format.
• Switched `P001ModelSurrogate<…ish>` syntax to now-preferred `id<…ish>`
Replaced P001ModelSurrogate's @dynamic decls with #pragma

Replaced P001ModelSurrogate's @dynamic declarations for the “invalid” and “unset” properties with a `#pragma clang diagnostic ignored "-Wobjc-protocol-property-synthesis"` @implementation prefix and a `#pragma clang diagnostic ignored "-Wobjc-missing-property-synthesis"` @interface wrap.
Surrogate usage fixes for tests

These together should fix the build.

• In InchCoordProxyTests, using model to set properties instead of the surrogate since sets on surrogates are no longer kosher.
	» I still haven't fully decided on whether surrogates should always be read-only or not.  I suppose if I find myself coded into a corner, I'll reverse this decision.  We'll see…
• Added `InchCoord *x` and `InchCoord *y` overrides (of `id<InchCoordish> x` and `id<InchCoordish> y`) to InchLocation to allow `location.x.doubleValue = secondLocationX` set to work properly.
• Added to P001ModelSurrogate explicit `isInvalid` and `isUnset` accessors (otherwise they're automatically synthesized with associated BOOL ivars, which start at `NO` and never change value).  Also set up `_cachedIsInvalid` and `_cachedIsUnset` in the same manner as `_cachedHash`.
	» It seems this implementation isn't going to scale well to potentially many flags and/or model-specific flags.  I suspect I'll have to do something about making a objectified state facility soon.
	• Removed the `#pragma clang diagnotic`s surrounding P001ModelSurrogate's interface and implementation.  Their warning was a “true positive”.

Also:
• A bit more documentation on P001ModelSurrogate's `_cachedProperties`, `_cachedHash`, `_cachedIsInvalid`, and `_cachedIsUnset` ivars.
Cleaned up test structure and messages

• Broke down each test into bracketed steps, each prefixed by the constants it uses (that are sometimes referenced later on) and the name of the step in the form of a NSString set to a new `test_step` ivar.
	• All assert messages now start with “After %@” with “%@” filled in with the `test_step`.  The “at this point” suffixes eliminated.
• Some of the assert messages improved to “_underline_” the most critical part of the message (namely, an easily-confusable state descriptor).
• All assert messages are now sentence-case and end with a period, which should make them stand out better.
• `P001ModelSurrogate` instances are now allocated to autorelease (which happens at the end of the test because SenTest has every test invoke wrapped in `[[NSAutoreleasePool alloc] init]` and `[pool release]`.
Added InchCoordProxyTests#testProxyValidityFlagPersistence

• New `testProxyValidityFlagPersistence` test that starts similarly to `testInstanceAndProxyValidityFlags` but instead of setting a value (and thus validating the inchCoord/Proxy) it immediately releases the `inchCoord` and test that the `inchCoordProxy` has the correct flags.
	» This test is essentially an alternate version of `testInstanceAndProxyValidityFlags` where `inchCoord.doubleValue` never gets set.
• Added step to `testInstanceAndProxyValidityFlags` that test `inchCoordProxy`'s flags after `inchCoord` has been released (to match `testProxyValidityFlagPersistence`).

Minor:
• Updated function comment for `testInstanceAndProxyValidityFlags` and added a similar one to `testProxyValidityFlagPersistence`.
Update branch 'feature/models-and-surrogates' to latest 'feature/puck-dynamics'

Also insisted that README.md's build status line references “feature/models-and-surrogates”.
Renamed ObjcRuntimeUtils functions

Renamed the functions in ObjcRuntimeUtils to more closely match the naming in <objc/runtime.h>, like they're a natural extension of the runtime API.  Updated all project usages to the new names.

Also Rearranged ObjcRuntimeUtils.m a bit to more closely match the order of the header file and eliminate unnecessary forward declarations.