Code quality: don't assign to self #8362

Most fixes are direct, some doubts in patch are 

pretty.py  the code always has `e=self` then `self=e`, unknown reason
tensor.py changing self to tensor is a little strange for codes between line 3058-3060
interval_arithmetic.py the change may influence the readbility

All the rest cases are not suitable to fix in this issue. As they are used intentionally.

sympy/galgebra/ga.py:                        self = MV.characterize_expression(self, base)
sympy/galgebra/ga.py:            self = MVtypes[mvtype](self, base)
sympy/matrices/dense.py:        self = object.__new__(cls)
sympy/polys/rings.py:            self = self.square()


> 1) do you think that `expr` is better than `self` as a name?

Absolutely, since expr is not the instance of the class that the method was called on.