Retain and autorelease the current read before clearing it

This is to prevent an issue where an instance of a packet could be release by the (last) owner – which would lead to the object being deallocated – in the middle of the `performRead:` message call.

This would lead to a bad access when the object attempts to access self later on in the execution of the method.