disentangle cancel().

Make a distinction between cancel() called on an Expr (or Basic) and
_cancel_tuple() called on a tuple or Tuple.