[grids] make some parameters mandatory

In particular, you now have to provide subentity and superentity
codims when calling subentities() or superentities().
[docs] add/update documentation
do not instantiate an exception in assert statement

as the exception is made an AssertionError anyhow.
[core.exceptions] remove unused CodimError
[grids.rect] remove visualize() method from RectGrid
[docs] update/add documentation
[la] remove the Communicable mixin

instead, add data property directly to VectorArray implementations
and let the implementor decide how to handle details (give warnings,
etc). To test whether a VectorArray supports communication, simply
use hasattr(v, 'data')
[docs] update/add documentation
[rtd] fix documentation generation on readthedocs.org
remove unnecessary class attributes
[docs] update/add documentation
[docs] remove tests from documentation
[docs] bugfix
[operators] add projected to OperatorInterface
[operators] add missing linear attributes
[operators] remove sparse attribute form MatrixBasedOperatorBase
[caching] remove __init__ from CacheableInterface

since mixins should not have __init__ methods if it can be
avoided. Otherwise using super in __init__ becomes unusable
[core] remove __init__ from BasicInterface
[caching] replace 'caching' by 'cache_region' everywhere
[tests] update caching tests