Update AddEntityFramework to ensure low-level required services are available

Or: It's our collection and we'll look if we want to...

Issue #890

These services are normally setup by the app environment in an ASP vNext app, but are not setup when we create the service provider or the service provider is being setup in some other app environment. This changes makes sure that however the service provider is used, then these required services are available just like all other services required by EF to run correctly.
I would suggest something like a FakeOptionsManager that just returns null for every option and verifying that null behavior in the replacement test.  I don't think anything actually would fail if you register the options services twice, as replacing the services with the same types should just be a no-op.

The only caveat with options is with service containers breaking things (IEnumerable<IConfigureOptions> aren't aggregated across containers), but since those don't appear to be involved here, should be fine.