Improved Messager behaviour with derived types.

Compare with the type sent and request. That is, now you can send a message with TMessage = BaseType and receive it with BaseType again without problems, even if the actual object sent is of type DerivedType which inherits from BaseType.

In other words, Messager just looks at the specified type in the generic call and not the object type.