make predicates, and? and or? not use kernel_types.iter_list

It seems RPython won't propagate exceptions raised in generators
to their caller/consumer.  This means iter_list is useless as
defined.  I'll take it out completely and do other long-overdue
refactorings.

As of this commit, compiled icbink passes the current KPLTS.