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.
Consider using TryGet on the dictionary rather than catching an exception.