1st Class Struct Block Assignments
Change block ops to assignments, with block nodes (GT_BLK, GT_OBJ and GT_DYN_BLK) as the lhs, and with GT_STORE_* in the backend.
For this initial change, existing behavior is preserved as much as possible, with a few differences in lea generation for SIMD types.
This causes pessimization in some areas; those, as well as the additional opportunities that can be enabled after this change, have all been marked TODO-1stClassStructs.
Commit migrated from https://github.com/dotnet/coreclr/commit/
cbaf04647bf4fddaeefb35af024b4d099ee4c25a