Simplify comprehension compilation in v3_core

Given that map comprehensions and generators and maybe && generators will be added to the language in the future, v3_core:lc_tq and v3_core:bc_tq to avoid a complexity explosion, where there are as many related clauses as the product of the number of types of generators and the number of types of comprehensions.

The new code abstract over all generators at the same time, there is only one clause for generators per type of comprehension, and all the filter code has been put in a common function filter_tq.

Obviously, all the tests in the compiler app still pass, at least here on my laptop.

Cc @bjorng.