* Create a scoped service provider for the call to Configure
- This allows scoped dependencies to be injected into the Configure method.
It means you can resolve the DbContext or any other scoped service without
the hassle of the CreateScope boiler plate. As a side effect, it also makes
Startup.Configure a bit more testable.
- Startup.ConfigureContainer allows users to configure a 3rd party DI
container in a first class way in the Startup class. 3rd party containers
plug in via IServiceProviderFactory<TContainerBuilder> configured in
IWebHostBuilder.ConfigureServices.
- Added tests
- Remove IStartupLoader and add `IStartup` instead that matches the signature hosting cares about
- Moved `UseStartup` to extension methods
- Move existing logic into `ConventionBasedStartup` class