Simplify `MessageForwarding` entity

So far, `Messageforwarding` has been a trait that requires a `ExchangeInfo` and a `MessageGateway` provided by its children. It is used by actors collaborating in the exchange to simplify the message forwarding.

There is no good reason to use inheritance there. As there is no good reason to couple the message forwarding to the `ExchangeInfo` object.

This change turns the trait into a regular class, which receives the counterpart and the broker connections from its constructor. Now `MessageForwarding` can be used by composition rather than inheritance.
We agreed to leave it as is, since `toCounterpart` is a naming convention reserved for type conversions, and using that name generates a warning.