Temporarily reverting Single/Take SQL support
Cadbury's Options: just 40 calories per cup! (Updates to DbContextOptions)

This change looks big, but a lot of it is trivial changes to naming. The significant changes here are:
- Collapse DbContextOptions and DbImmutableContextOptions into one class
- Allow for generic DbContextOptions so that different options can be created for different contexts
- Get this options object from the service provider if it one is available. This will theoretically work with the options stuff happening elsewhere
Simplify Visual Studio build steps

New steps:
1. Run `build initialize`
2. Open solution
Convert .csproj files to portable class libraries
Mary-Jo-Lisa; always the same... (Allow connection strings to be pulled by name from IConfiguration)

This change allows connection strings to be stored in any format supported by IConfiguration and then retrieved using just the name or the "name=" syntax in UseSqlServer and equivalent.

This change doesn't include anything to get IConfiguration registered and it doesn't include a way to get connection strings out of app.config/web.config, although that could potentially be done with an appropriate IConfiguration source.
Fixing build break caused my merge error.
Remove unused references from .csproj files
Target net451 in projects that depend on Microsoft.Data.Common

Resolves #177
Space-age composite polymer; not a shred of sqlmetal... (Support composite keys end-to-end)

This change adds support for value generation with composite keys which was blocking use of composite keys end-to-end. The state entry will now generate values for any property marked to have value generation on add regardless of whether that property is part of a key, composite or not.
You can't fire me because I quit! (Change from Added to Deleted results in detached entity)

See issue #351. When an entity is in the Added state it means that it doesn't exist in the database and should be inserted during SaveChanges. If the state is then changed to Deleted this would mean delete an entity that doesn't exist in the database, which will fail. In the EF6 stack we instead detach the entity in this case so that it is just never inserted. This change implements the same behavior in EF7.
Monster Munch (Add Monster Model to add more coverage for different relationship types.)

This is mostly a starting point model for some relationship fixup/change detection work. There are some TODOs for somethings that don't work yet. I updated relational type mapping to support nullable types and simple enum mapping.
Share and Enjoy! (Share common TypeExtensions code)
Migrations: Added HistoryRepository, MigrationAssembly, Migrator, MigrationScaffolder classes.
Made updates and wired up functionality as necessary. Added unit tests.
Distant relatives... (Move relational-only API out of top-level Database class and into extension methods.)

From design meeting notes:
Currently the top-level runtime database creation APIs in EF7 are:
- Database.Create
- Database.CreateTables
- Database.Delete
- Database.Exists
- Database.HasTables
- Database.EnsureCreated
- Database.EnsureDeleted

The first five of these are simple operations while the Ensure... methods are composed from the simple operations. The Ensure... methods cover the common pattern for database creation in testing and rapid prototyping. They can also be reasonably implemented across multiple different types of data store.

The simple methods are not so easy to abstract in a meaningful way beyond relational databases. For example, knowing that a database exists but has no tables is useful in relational providers since it is common for an empty database to be provisioned for which EnsureCreated will detect that it is empty (HasTables returns false) and then appropriately create the tables. But for other types of store it may not be possible to check whether or not the database has tables. Therefore we will move the simple operations to be relational-only and leave only EnsureCreated and EnsureDeleted on the common surface.
Adding switch to build.cmd to skip KRE install
Created projects Microsoft.Data.Entity.Migrations.Design and Microsoft.Data.Entity.Migrations.Design.Tests. Moved CSharpMigrationCodeGenerator, CSharpModelCodeGenerator, MigrationScaffolder and related utilities to the .Design project and the corresponding tests to .Design.Tests.
Also increased the CommandTimeout in TestDatabase.cs to 30 seconds (default) to workaround the timeout expired exceptions I get on my machine when running those tests.
Adds early filtering support.
Delete checked in Properties.cs references.
Null no no... (Preemptively react to DI changes)

DI has been returning/proving null for services that are not registered. This is about to change. Updating EF to depend on IEnumerables for optional services and to not expect GetService to return null.
SQLite: Add some low-hanging fruit implementation

Changes include:
* Fix CreateTables & HasTables on SQLiteDataStoreCreator
* Implement SQLiteDataStoreCreator.Delete
* Update SQLiteTypeMapper.GetTypeMapping to use aspnet/DataCommon.SQLite#32