Default to clang instead of g++

This is to avoid the "lambdas and varadic templates don't work together"
bug in g++ < 4.9.0 (see [1]).

[1] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=41933
Add cross products for producers and filters

Note: The current implementation is incompatible with g++ versions
before 4.9 but works fine with clang.