Detect recursive calls to [self release] and restart the class hierarchy walk in that case. Fixes calls to [self release] in -dealloc, and fixes issue #3.