Fix error propagation for ! and BoolExp

If !x is an error, don't change it to a boolean.

I didn't find any cases where __error appears in an error message, but constfolding should not have to deal with invalid expressions.