Use const references where possible

Passing arguments to a constructor should be done
via a const reference, instead of passing by value.
Mark all methods as const when possible.

Some const methods slipped through while writing the
tensorproduct coordinate container.