[Tailcall] Fix virtual generic methods that F# tests uses. (#7524)
* [Tailcall] Add but do not use the F# tailcall test suite.
* [Tailcall] Compute inst_tailcall much earlier, it is cheap, and it will be used more and earlier.
* [Tailcall] Compute supported_tail_call and tail_call earlier.
* [Tailcall] Fix virtual generic methods that F# test TailCallLoopGenericClassAndMethodAbstractClass<byte>.Method3<byte> uses.
There is a general problem of customized code paths missing pieces.
This fixes just part of it.
* [Tailcall] Use common code for removing ret after tailcall, and not handling return value.
* [Tailcall] Cleanup.
* [Tailcall] Short circuit looking at parameters for has_vtargs.
* [Tailcall] Tailcalls presumably do not need sequence points, or anything, after them.
* [Tailcall] Fewer labels, more booleans, move existing label up, with additional booleans
controlling its behavior -- intent is to tease one altered behavior (tailcall of
virtual generic) and one existing and one new sharing of common code (remove_ret).
Longer term might have more tailcall handling.
* [Tailcall] F# tests closer to original.
* [Tailcall] Add the F# tests in blob form.
comment out the two failing tests
fsharpc --standalone --optimize- fsharp.fs
monolinker fsharp.exe to trim a little
change resource-using code to use constant strings
* [Tailcall] CI fails roughly where local passes.
* [Tailcall] Merge fsharp.fs into fshar.il as a comment.
* [Tailcall] Cleanup, remove unused labels, etc.
* [Tailcall] Cleanup test code some.
* [Tailcall] Cleanup.
* [Tailcall] Try harder to disable fsharp for AOT due to CI failures.