Break up `connection/__init__.py`
This depends on !51 (merged) (which is why there are so many commits in there) and attempts to fix #11 (closed). Everything still seems to work after the move, the documentation still seems to be correctly generated, etc.
It's basically splitting up all of connection/__init__.py:
- New
direct.pyfile with all the base classes andDirectDiscretizationConnection. - Put
ChainedDiscretizationConnectioninchained.pywith the flattening stuff. - New
projection.pyfile for theL2Projection..Connectionclass from !51 (merged).