Migration Fixes - Getting a ModelDiffer and usings in generated code

Tooling was using GetService<ModelDiffer> but that was broken now we have specialized ModelDiffers. We were also registering specialized Migrators but they were registered as Migrator in DI so you would get multiples if you registered two providers (and random behavior ensued). Swapping to have Migrator resolved thru DataStoreServices.

Also adding a missing using from generated model code.

Tested with automated tests and manually testing k ef migration commands
I don't think there needs to be a bug. We should add it when we need it, unless you mean to try to protect against breaking changes if we don't need it before RTM?