Frees the message receiver.
The destructor must be called from the same thread which was used to create the receiver.