[Backend] Extract uncached vector views to an external class
[DenseBackend] Switch VectorContainer to common UncachedVectorViews
[ISTL] Switch ISTLBlockVectorContainer to common UncachedVectorViews
[Backend] Extract uncached matrix views to an external class

Like the vector views, the matrix views are not very container-specific
as long as they don't attempt to perform any clever caching and just
forward most operations to the global container, so this patch extracts
them into external utility classes. Along the way, we also fix a bug
where some modifier methods were erroneously declared const and also
finally provide a const view for matrices that was missing until now.

Just as for the vector views, the new components deprecate global_container()
in favor of container().
[DenseBackend] Switch MatrixContainer to common UncachedMatrixViews
[ISTL] Switch ISTLMatrixContainer to common UncachedMatrixViews

If possible, we just provide a template alias to the utility component.
If the compiler does not support template aliases, the fallback code
defines nested classes that inherit from the utility classes.