As no tracking

Moving the decision to used cached values upstream to query evaluation when .AsNoTracking is set.  When this is set, we never use cached values and instead query the database when the value is requested.  
This isn't really a visit method. I think we can change this slightly:
1) Store queryAnnotations in a field
2) Make QuerySourceRequiresTracking always do a scan