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 think we can just add it if/when needed. It shouldn't be a breaking change to introduce a new type between two existing ones.