Refactor to hide static KWObjectStubs variable behind C functions
Break infinite loop by using a block as a stubbed object key instead of the object itself
Refactor to hide static KWMessageSpies variable behind C functions
Rename KWObjectStubsKey to be more generic KWInterceptedObjectKey
Break another infinite loop caused by hashing an object with a message spy
Refactor to hide static KWRestoredObjects variable behind C functions
Rename Issue509Spec to have more descriptive name
Add doc comment for KWInterceptedObjectKey
Rename/reorganise tests in KWRealObjectStubTest.m
Remove unnecessary functional test in favour of existing unit test
Merge pull request #512 from sharplet/issue-509

Fix #509