Fixes: #16874
This is a significant simplication of our startup code model for Blazor
wasm with the goal of removing concepts that don't make much sense here.
Previously in this area we've tried to be consistent with ASP.NET Core
on the server, but it's not helping up much in WASM.
We're still leveraging some of the lessons from server-size ASP.NET
(hello CreateDefaultBuilder) but consistency is no longer a goal.
This change actually makes a bunch of scenarios better (rather than
removing features) - it's now possible to access services from the
application's DI scope and initialize them before the UI is shown
`RunAsync`.
This change also adds configuration in a central way. There's nothing in
this change that populates configuration in an automatic way, that will
come next.
While it's definitly intended for `@bind` to have culture-sensitive
output for most cases, we want the tests to behave consistently for all
developers.
So this is an attempt to use a fixed culture for all of our testing.