Make MeasureCallback signature .NET friendly
Currently, MeasureCallback signature has a return type of a POD 16 bytes
structure. Returning the structure by value is messing up when passing a
delegate from C# on Windows 10. The net effect is that arguments arrive
with random values. This happens because the C++ compiler may apply
optimization like RVO that the .NET runtime is not aware of.
This link [1] provides more details.
We fix the problem by making SizeTuple an out parameter and returning
void.
[1] https://www.tutorialsteacher.com/csharp/csharp-delegates
Change-Id: I71feef35908d139f60e6941b447a78b38053b89d