Fix a bug in DeadCodeElimination.

The code that manipulates multiexpressions might in some cases
incorrectly optimize boolean expression in the following manner

   false && (a(), true)   ==>  (a(), false && true)

resulting the execution of code that should not have been executed
due to shortcut semantics.

The error was introduced in when this transformation was originally
implmenented in 2d3eff8250fa327e3887b7661fad57ddf40960bb.

Change-Id: Id87520d76a8b96439f6f20ea74527af26f46069f