Adds dynamic sizing of the xstate area in Linux signal frames to handle forward-going processor extensions.
Sends a signal at init time to obtain the size of the xstate area. If it is larger than the known size, adds an OP_xsave operation when updating the state of a delivered signal. This is expensive, which is why we avoided it before. Using OP_xsaveopt is future work once we have FEATURE_XSAVEOPT (part of i#1312).
Adjusts the pending signal heap allocations to be aligned properly for an in-place OP_xsave.
Several stack-allocated xstate structures no longer easily fit on the stack and are changed to two different kinds of heap buffers: one in TLS for uses that cannot easily free it locally (thread_set_self_context() and os_forge_exception()), and one on the regular heap (convert_frame_to_nonrt_partial()). Unfortunately I was only able to easily test os_forge_exception(). Our test suite is missing test paths for the others.
Fixes #1937 (closed)