8413 and 8373 related changes

See #8413 and #7950 
closes #8373 

> Perhaps the same filtering of identity

No.  We just don't support evaluate kwarg for And and friends.

BTW, I think we should fix this:
```
>>> Add(0,x,evaluate=0).args
()
>>> Mul(1,x,evaluate=0).args
()
```
At least for printing purposes we should be able print arbitrary expression trees.