Use a NSObject subclass rather than a malloc'd struct for `SourceInfo`, allowing real reference counting to take place easily. Pass `CFRetain`/`CFRelease` in the context information so that as the `SourceInfo` is passed around it's properly managed. This means we don't have to do manual tracking of the memory... and should fix any problems with the socket being retained elsewhere such that we free the `SourceInfo` before it should be freed.
Fixes #8692, so far as I can tell; thanks to '''tgos''' for detailed bug reporting and investigating of this issue which could cause seemingly random crashes. '''tgos''', I can no longer reproduce the crash after this change; please let us know if that's true for you, as well.
git-svn-id: svn://svn.adiumx.com/adium/trunk@22436 1c916fce-81e2-0310-a464-8ca513f45935