Handle finalization for CFType instances similarly to how we handle
finalization of NSObject instances.
Replaced some uses of String with NSString where the values are always
CocoaTouch constants and not arbitrary user supplied values. (#395)