fake query bugfix; modernize fake query tests

This fixes a bug in the fake query helper.  It wasn't properly
handling the case where the results it was given were nil.  This
case can occur if the fake paged query is given a page num that is
out of range.

This updates to fix the bug and add a test for it.  It also updates
to fake query tests to be more up to our latest testing standards.
This involved adding a factory and using it.