Invocation parameters are now non const and can be 'modified'
The invocation parameters need to be non const as we want to be able to call non-const methods like `PrepareForOutput` on them from a transport function. The original implementation abused the fact that everything could be copied by value and have that work properly. But when we start introducing virtual classes copying by value of a base type can cause type slicing.
Showing with 44 additions and 44 deletions