Paper prep from master

This is a combined pull request for the "Full support for template functions, also unit/dimension support" and getting the CUDA backend up-to-date.

See https://github.com/sintefmath/equelle/pull/31 for updates regarding template functions and unit/dimension support.

Additional improvements:
* The class PrintCUDABackendVisitor now inherits PrintCPUBackendVisitor
* CUDA backend now support Sequence Of Scalar * Scalar
* CUDA backend now uses tuple instead of array for Arrays
* Made a version of shallow water equations with units: swe_units.equelle
* Fixed bug in shallow water simulator. Did not multiply flux with area of face before. This was not noticed as only cases with 1x1 grids had been used before.
This constructor must be `explicit`.