matrix_base<>: Removed layout tag, row/column major is now a runtime parameter.

The rationale for this change is to simplify the interfacing to external BLAS libraries,
which take the layout as a runtime argument. Another benefit is that we can
better unify kernels for row-major+non-transposed with column-major+transposed,
which is essentially the same operation. Compilation times
are mildly reduced for OpenMP and OpenCL, and mildly increased for CUDA.
OpenMP and OpenCL tests are known to pass, CUDA is not tested.
Code in the worker-backends can be further simplified in follow-up commits to
obtain a more compact code base.