JIT: Add BinaryTrees benchmark variant
Add a variant that uses a class and out parameter instead of returning
a struct by value. This variant is similar to version 3 from the benchmarks
games site, but with validation added and parallelism removed.
See related analysis in dotnet/coreclr#8837. According to xunit-perf runs, this version's
performance is improved (~10%) by enabling the model inlining policy. When
the model policy is enabled the inliner will inline the two outermost calls
to `ChildTreeNodes` in the innermlost loop.
Also, make sure the new and the original version to build the same way in
release and debug.
Commit migrated from https://github.com/dotnet/coreclr/commit/
f8b89a11985f763aff040875a96c47a166500f25