Use the element access operator in the Tensor classes

This is the first step to making a lot of the tensor operations more general. If element access operator is used, rather than raw access to ```_vals``` all these methods can be used in a symmetry aware version of the Tensor classes (by making ```operator()``` virtual). Adresses #4183.
Hah, at first I read this as `return sqrt(12)`, which is almost a `return 4` but not quite.