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.
Looks like this is a cache for ConstructorInfos to avoid calling MakeGenericType many times. This is good. However, some things to consider:
- The Invoke call is still slow. Caching something that doesn't require any Reflection-based invocation is usually better. For example, cache a factory instance.
- The most benefit in terms of caching will come when this service is rooted as a Singleton in the DI container, which I see you are doing. However, this then means that the cache needs to be thread-safe, which isn't currently the case. Consider using ThreadSafeDictionaryCache for this.