ask(Q.foo_elements(MatMul(...))) handles scalar args
ZeroMatrix.__nonzero__ returns False
Merge pull request #2145 from mrocklin/matmul-element-types

ask(Q.foo_elements(MatMul(...))) handles scalar args