Use vectorized T=byte implementations to optimize all MemoryExtensions APIs for T != byte (#28080)
* Adding IsTypeNumeric helper
* Add more NUint operations and use IsTypeNumeric everywhere.
* Revert addition of LangVersion 7.2
* Fix formatting
* Revert use of nuint and IsNumericType for *IndexOf* APIs
* Fix comment, undo leftover changes, and fix indentation.
* Address PR feedback - use nuint where possible.
* PR feedback - Cleanup SequenceEqual just like SequenceCompareTo
* Add new NUInt operations for netcoreapp/coreclr mirror.
* Address PR feedback
* Add T = char and T = long tests for StartsWith and EndsWith
Signed-off-by: dotnet-bot-corefx-mirror <dotnet-bot@microsoft.com>