Extract CDRSpyInfo class to manage associations

This replaces usages of objc_setAssociatedObject
Examples of iOS 5 and 6 testing techniques

This illustrates the runtime differences when spying on a weakly
retained UIView or UIVIewController instance with the current
spy implementation.
UIResponder subclasses use different CDRSpy base class

This is an ugly solution which passes all current test cases, debug and release.
Simplify spec as current implementation is iOS 5-safe
CDRSpyInfo teardown restores original class

This seems to address a number of strange UIKit-specific issues when code under test is compiled with ARC.
iOS specific ugliness can be deleted when iOS 5 runtime is no longer supported.