Avoid throwing exceptions when a parameter is optional

When a parameter has a default  value, we  add Type.Missing as the value of the parameter instead of throwing exceptions which will simply not call the C# function at all.

It is verified to work with calling a FFI function (C#) with parameters which have default values.