Development

Large refactoring to support more complex updates and provide an API that better communicates that these operations are separate from EF Core. 

Also refactored all operations to use the provider model which makes it easier to support newer storage models. Also added fallbacks for Update/Delete.

New API examples:
```EFBatchOperation.For(db, db.Comments).InsertAll(comments);
                EFBatchOperation.For(db, db.Comments).Where(x => x.Text == "a").Update(x => x.Reads, x => x.Reads + 1);
                EFBatchOperation.For(db, db.Comments).Where(x => x.Text == "a").Delete();``` 

The update query should now support many of the DbFunctions that EF support. For example AddDays which will translate to a DATEADD:

``EFBatchOperation.For(db, db.BlogPosts).Where(b => b.Title == "T2").Update(b => b.Created, b => DbFunctions.AddDays(b.Created, 1));``

Now all 3 methods support the case where property names doesn't match the sql column name.