Currently, the `FunctionAroundWrapper` set `targetFunction.setSkipOutputConversion(true);`
which is not what expected by the `TraceFunctionAroundWrapper`.
This one has a logic based on the `Message` as an output from the target function
and its headers to correlate tracing headers.
* Remove the `setSkipOutputConversion(true)` from the `FunctionAroundWrapper`
to satisfy `TraceFunctionAroundWrapper` expectation - we cannot enforce
all the end-user function to always return a `Message<?>` for us.
* Some other refactoring in the `FunctionAroundWrapper` for cleaner code
**Cherry-pick to `3.2.x`**