ATS: Update querying pipeline to meet Northwind spec

There is some work still to be done, but I wanted to submit this *before* list of changes get too big.

Made lots of improvements to get ATS working on the Northwind tests

Other features included:
Support for shadow state properties
Beginnings the Fluent API extension for ATS
Refactored POCO support to use already optimized clr accessors.
Refactored object creation to use factories and dependency injection

TODOs:
   Support for complex logic in server queries: (Queries can only AND together conditions)
   Optimization: reduce the multiple calls to the server made per query.
I would move this to the Microsoft.Data.Entity namespace. One of the big problems with extension methods is discoverability. Intellisense in Visual Studio (when not using ReSharper) will only find extension methods if the namespace is already being used in the source file. For this reason we often try to put extension methods into namespaces that are likely to be already used. This can be the namespace of the type that is being extended, but sometimes this doesn't help much because the type being used is likely not explicitly declared in the source file--for example, somebody doing context.Database.AsAzureTableStorageDatabase will likely not have a using for "Microsoft.Data.Entity.Infrastructure" which is where Database lives, nor will they likely have "Microsoft.Data.Entity.AzureTableStorage", which is where this extension currently lives. They are much more likely to have "Microsoft.Data.Entity" and hence putting the extension there makes it more likely to be discovered.