Allow no_tickets and not_member_of to work together

Both of the filters, as curreently written, return; thus, if
not_member_of is used, no_tickets is ignored.

Switch to a list of filters, which all must be passed and refactor out
the loop over the objects (which was shared between
FilterNotMemberOfGroup and FilterWithoutTickets).  This also allows the
correct upper limit of results to be returned, as opposed to if the
filters were run sequentially, with each imposing the upper limit -- if
all of the first 50 non-group-members had tickets, the result set might
be empty instead of finding the 50 non-group-members later in the set
which had no tickets.