Add support for Cocoa Garbage Collection (GC)

Although ARC and GC are quite different, writing code for one is
a lot of writing code for the other.  In the two places where
__has_feature(objc_arc) was used I added a check for defined(__OBJC_GC__).
I've been testing this locally for weeks (after staying on the 7.x
branch for a while), and things work fine for me under GC).
Suppress -Wconditional-uninitialized warning

Initialize variable to 0 to suppress a likely false positive
from clang's -Wconditional-uninitialized.