Make sure we project the classad if requested. #4277
Correct removal of objects actively being iterated over. #4277

This corrects a few issues:
1) When removing an object from the hashtable, the iterator should move
   *forward*, not backward.  As it can be referenced in the future, by
   moving it backward, we risked the possibility of returning the same
   value twice.
2) When applying a requirements filter to a ClassAdLog, do not keep a
   local cache of the ad; when we return to DC, the cached pointer may
   be invalidated when removing the object from the hashtable.  Instead,
   dereference the iterator again.
3) Correctly register all iterators, even begin() [this is needed due to
   return-value-optimization].
4) Invalidate iterators during hashtable clear.
Update the python tests to cover xquery.  #4277

This covers a few cases where we query for large ads, compare the results
between query and xquery, and remove ads while an xquery is in progress.
Move duplicate code for advancing the iterator to a common function. #4277
Merge branch 'V8_1_5-branch' of /p/condor/repository/CONDOR_SRC into V8_1_5-branch
Merge branch 'V8_1_5-branch'