Created GammaMatrixHead object, fixes and improvements on tensors

I am not very satisfied with the way a gamma matrix is implemented, maybe that needs some review.

In any case, now:

* gamma matrix traces are available.
* bugfixes in the tensor module.
* `TensExpr` now has `_eval_simplify` to allow a dispatcher to simplify gamma matrices (I plan to do the same with `_eval_trace` in the future).
* beginning of mixed expressions (gamma matrices + other tensors).
* Lorentz indices are now stored in a dict according to their dimension and epsilon dimension.