Added partial/initial support for Cocoa ARC memory management

Did this by creating #defines indicating if GC, MRR, or ARC, then excluding
retain/release/autorelease as necessary in the non-MRR case.

For the MRR case, there is really no change here.

For the GC case, retain/release/autorelease are nop at runtime,
but now they are excluded at compile time, so significant change.

For ARC, this fixed some (but not all) compiler errors, since
retain/release/autorelease cannot be called explicitly, and now aren’t.

Also fixed clang static analyzer (false positive) warning by reworking
memory management in InternalCreateTimer()/InternalDestroyTimer() a bit.

All this is necessary but insufficient. More to come.

Change-Id: I5666a01d8ed258c63f5415e4a381ea629a12ec7a
Merge topic 'cocoa-arc' into master

dd3f20db Added partial/initial support for Cocoa ARC memory management