Rename class GenericQuadratureRule to TensorProductQuadratureRule

That is a better name, because it matches better the names used in
the literature.

The class is an internal class so this patch is not an API change.
[documentation] improve a comment
Rename file 'genericquadrature.hh' to 'tensorproductquadrature.hh'

Again, this better matches what is used in the literature.
Adjust name of single-inclusion macro to new file name
Improve the documentation
Rename internal methods

* new names are more telling
* new names follow Dune style rules
Remove the Invalid_Rule enum value

Because nobody knows what it is good for, see FS 1387.