Improve throughput of UInt32/UInt64 integer parsing (dotnet/coreclr#18930)
As was recently done for Int32/Int64, ports the Utf8Parser approach to parsing to UInt32/UIn64.{Try}Parse, specifically for NumberStyles.Integer (the default).
Also fixes an issue discovered in the previous Int32/Int64 changes, where if the input both has an overflow and has a formatting error (e.g. Int32.Parse("12345678910blah"), we would end up throwing whichever error was hit first, which is a change from .NET Core 2.1 and netfx. The FormatException needs to be preferred over the OverflowException, which just means we can't bail early when overflow is detected.
Commit migrated from https://github.com/dotnet/coreclr/commit/
ce0a2617d40bc217b8e0a2137e340afe585afcb1