typo edit
pep8 tensor_can
reformat for sphinx
Fixed a bug in canonicalize; corrected comments in test_tensor_can.py
Tensor expressions with canonicalization

It is implemented a tensor class with monoterm canonicalization
and algebraic operations on tensors.

As an application,
check of identities involving the cyclic symmetry of the Riemann tensor

```
>>> from sympy.tensor.tensor import TensorIndexType, tensor_indices, TensorSymmetry, TensorType, riemann_cyclic, riemann_bsgs
>>> Lorentz = TensorIndexType('Lorentz', dummy_fmt='L')
>>> i, j, k, l = tensor_indices('i,j,k,l', Lorentz)
>>> symr = TensorSymmetry(riemann_bsgs)
>>> R4 = TensorType([Lorentz]*4, symr)
>>> R = R4('R')
>>> t = R(i,j,k,l)*(R(-i,-j,-k,-l) - 2*R(-i,-k,-j,-l))
>>> riemann_cyclic(t)
0
```
Added tensor.py classes to test_args.py
fixed bug in substitute_indices and in TensAdd.__new__; increased coverage;
cleaned up the documentation
Added __lt__ methods needed in Python3
classes inherit from Basic; eliminated `__eq__`; factored code
of TensAdd.__new__; renamed Tensor TensMul; added some more documentation
Added tests.
used `symbols` to read names from a string
changed `metric_sym` to `metric_antisym`, `commuting` to `anticommuting`
in `TensorType.__call__`, `sym` to `antisym` in get_symmetric_group_sgs
fixed bug
taken away is_Tensor from Basic;
in TensorIndexType.__new__ replaced metric_antisym with metric

factored `contract` from `contract_delta` and `contract_metric`;
added tests for contract_delta
fixed bugs in TensMul.contract and renamed it _contract
tensorsymmetry method to symplify generation of TensorSymmetry objects
fixed bugs in canonical_free, get_indices and TensAdd.__new__
derivatives of Max() and Min() using Heaviside()

modified:   sympy/functions/elementary/miscellaneous.py
modified:   sympy/functions/elementary/tests/test_miscellaneous.py

* added fdiff for Min() and Max()
* added diff Min() and Max()
* implement simple tests of Max().diff and Min().diff
* use ArgumentIndexError for assertions in fdiff
Fixed bugs in TensAdd.__new__ and split
added tensorhead