[cs] SomeType >> _ is always of type SomeType

I haven't done too much here.
All the errors for the C# compiler are either about UInt or about some C#-specific behaviour. In special, `cs.Out` and `cs.Ref`. They are special typedefs that should only be used in function arguments that expect an actual variable - not a constant.
They work like the `addressOf` (`&`) operator in C. If we cancel optimizations on those cases, I think we'll be able to compile C# fine as well.