"He told me you killed my PK!" "No, I am your PK" (Added ReferencedKey API to allow specification of non-primary principal key)

This is the counterpoint to the ForeignKey API and is used to specify the key properties at the principal end of the relationship.

Note that Migrations doesn't support yet creating the required candidate keys so functional testing is limited to in-memory. Also, we decided this morning to remove the parameterless overloads of ForeignKey amd ReferencedKey, but I will do that as a separate change.
That name no longer has any meaning for me... (Remove parameterless overloads of ForeignKey and ReferencedKey)

After discussion of this API we decided that the semantics of these overloads were ambiguous as to whether they were for just specifying the end or indicating that the FK should be created explicitly in shadow state. Also, it was not super-clear which was the principal/dependent when no property was supplied. Given that the only real value is to avoid having to be explicit about either the FK or PK in cases where the principal/dependent need to be flipped, we decided it was better to remove these overloads.
Removed sources from project file
Merge branch 'dev' of github.com:aspnet/EntityFramework into dev
Quicker, easier, more seductive... (Change DbContext.OnModelCreating to get a ConventionModelBuilder)

The relationship fluent API patterns we have introduced cannot work without some conventions. However, we feel that there is still value in having a ModelBuilder API that is very close to the metadata model and never uses any conventions. Therefore, the plan is to move the new relationship API into the ConventionModelBuilder. Since we want this API to be the one available in OnModelCreating this means that the parameter in OnModelCreating should now be ConventionModelBuilder.

Also did the rename of the parameter per issue #441.
Adds async versions of Northwind query tests. Fixes a number of outstanding issues in async result operator handling.
Enables async NW tests on ATS, SQLite
Darth Skywalker... (ModelBuilder renames)

ConventionModelBuilder becomes ModelBuilder; ModelBuilder becomes BasicModelBuilder.
Implementing new ILoggerFactory.AddProvider method
When the model differ detects a new table it creates a CreateTableOperation, and AddForeignKeyOperations, CreateIndexOperations for its foreign keys, respectively indexes. The table passed to the constructor of CreateTableOperation is the target table. Instead it should be
a clone of the target table that does not include foreign keys and indexes since these are handled separately.

Made public the Clone methods from the database model classes.