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.
sorry for just jumping in, but my knee jerked. why are you hardcoding package paths at all? find_package(Eigen3). a user should never have to pass paths to stuff installed on the system.