Fix mutator to not mutate the rhs in a boolean connective

* If the right hand side of the expression includes a method which
  raises or otherwise exits the control flow we cannot kill that
  mutation. However we can mutate the left hand side, and then
  mutate the whole node so it is negated; in the worst case both
  those mutations will be equivalent, but in the best case the rhs
  will return a boolean which will be negated.