Wrap all run loop spins in an autoreleasepool block

This increases the realism of KIF tests. NSRunLoop normally wraps each
run loop iteration in an autoreleasepool. However, since KIF
explicitly spins the run loop from within XCTestCase's internals, it
appears NSRunLoop notices that there's already a pushed run loop and
does not push an additional one. As a result, objects that would
normally be added to the run loop's autorelease pool and autoreleased
at the end of the loop may end up added to the XCTestCase's pool
instead, and thus won't be deallocated until the end of the
test. Keeping these objects allocated changes the behavior of the
application significantly, particularly if the dealloc methods tear
down notifications or similar callback chains, and can lead to tests
not matching up with real-world behavior.