split up lasagne.layers.base into submodules

In #68 we discussed splitting up `lasagne/layers/base.py` into multiple submodules because it's grown very large. I've followed @f0k's proposal, but I additionally split off `InputLayer` into an `input` submodule, in case we want to add more of those later.

I'm submitting this as a pull request since it's a big change that should be discussed and reviewed first.

Some remarks:
* `lasagne/layers/__init__.py` now imports all names from the submodules, including `cuda_convnet` and `corrmm`. However, `cuda_convnet` and `corrmm` are also imported as before, for backwards compatibility (else a lot of my code would break right now :p). I guess we can remove this pretty soon.

* The `helper` submodule currently imports `DenseLayer` and `InputLayer` just to make the doctests work (they aren't actually used in the code). I'm not sure if this is a good thing. When we add more doctests to various classes, this is going to lead to a lot of imports that are technically unused. Is there a better way to solve this problem?

* All tests pass, but considering our limited test coverage for now, this change might still break a bunch of things. I guess it's better to do this sooner rather than later :)
One problem I have with the formulation of "all layers that feed into it" is that I understand this as "all layers that are directly connected to the layer" (i.e., what's stored in `self.input_layer` or `self.input_layers`), while you understand it as "all the layers below it". We might want to use a different formulation altogether.