Issue 682 - remove copy of BasicExpressionVisitor in SqlServerCE
PullForTheCops (Pull request fix for CodePlex 680: Migrations: Generated code missing GeneratedCode attribute)

This is a pull request from Unai Zorrilla to add the GeneratedCode attribute to Migrations code behind files so that static analysis tools do not complain. Note that this is not the code that is scaffolded for the developer to own.
StoreItemCollection resolves DbProviderServices when it reaches Provider attribute in the SSDL.
We used to use DbConfiguration to resolve this dependency. This does not work for the EF Designer
where the underlying database may change multiple times during one session and different
DbProviderServices - even for the same invariantName (EF5 vs. EF6) - may be needed.
We will be possibly also adding and removing providers during the session. Enabling passing
IDbDependencyResolver allows the designer to use its own resolver when loading StoreItemCollection.
If the passed resolver is null or the provided resolver does not resolve the dependency we will fall
back to the default behavior and use DbConfiguration.
Improving the UX around migration re-scaffolding.

     - Output an explicit re-scaffolding message if we are re-scaffolding.
     - Output a warning if the user runs Add-Migration 'Foo' and there is an existing migration called 'Foo' that has been applied to the database. In this case we create a new migration called 'Foo1' but it is likely the user wants to re-scaffold. The warning message describes what to do if they really are trying to re-scaffold 'Foo'.
     - Figured out how to UT migration commands and added test coverage for AddMigrationCommand. This pattern should be applicable to other migrations commands but I haven't retrofitted tests for those.
     - Removed the highly annoying extern alias requirement for the EF.PS assembly from the UT assembly.
Modified migrate PS commands to maintain focus after generating code
SolicitudsDesExtraccións (Make pluralization service public and allow it to be resolved by IDbDependencyResolver)

This is a pull request from Unai Zorrilla. The approach is basically what was discussed in the design meeting:
      - PluralizationService becomes IPluralizationService and is made public
      - The IPluralizationService to use is resolved globally using IDbDependencyResolver (No automatic selection based on locales.)

This push also includes code cleanup and consolidation of files into the System.Data.Entity.Infrastructure.Pluralization namespace.
Increment number to fix build
Make database connections in the test suite more configurable.
Work Item: 376
HelpImLockedOut (Allow interception and modification of config before it is locked)

This is the first part of a change to allow applications and tooling to look at and change DbConfiguration after it has been constructed and set up but before it is locked. This part allows for the interception to be done from code by registering an event handler; it is intended that it will also be possible to add an interceptor using the config file.

The event provides an IDbConfiguration instance, which is really a DbConfiguration presented with a slightly different view. Using this you can lookup which services have been registered using the DependencyResolver property and then use AddDependencyResoolver to a add new resolvers that override the current services. You can also add a resolver that will override settings in the config file.

Note that an additional change is required to the way the obsolete DefaultConnectionFactory property is handled such that it mirrors the connection factory obtained from DbConfiguration