Fix enregistered lclFld bug (dotnet/coreclr#18418)
* Fix enregistered lclFld bug
In `impFixupStructReturnType()`, don't transform to `GT_LCL_FLD` if we have a scalar lclVar.
Also, to avoid future bad codegen, add verification and recovery code to Lowering.
Fix dotnet/coreclr#18408
* Extract the full conditions for whether a lclVar is a reg candidate, so it can be called from the assert in Lowering.
* Review feedback
Commit migrated from https://github.com/dotnet/coreclr/commit/
82134a002fed96739694b6f085baaeea6c7c41f5