Simple maxout brick

I'm not sure whether #50 is a good long-term solution. Next time someone comes up with an activation that reduces the output by e.g. `floor(sqrt(input_dim))`, and then the MLP framework is useless again. Or what if someone wants to apply two activations in a row (without a linear transformation in between)? I think it is better if we go back to the way the `MLP` brick was implemented originally (and the way it is implemented in Pylearn2 actually), as simply a daisy-chain of bricks, without any assumptions on what happens in between: https://github.com/bartvm/blocks/blob/3deb99ab61680ee9960198e4a6e566a7aa5c91cc/blocks/__init__.py#L79-L161

We can easily use a factory-method pattern to create the simple transformations (`LinearTanh`, `LinearSigmoid`) again, or we can just ask people to pass everything separately: `[Linear(), Tanh(), Linear(), Sigmoid()]`.

I do agree that we need a separate `Maxout` activation which doesn't assume a linear transformation right before it, so we can split this into a `Maxout` and `LinearMaxout` brick. If we don't use the factory-method to create `LinearMaxout` (like we did for e.g. `LinearTanh`) we can change the input arguments slightly to make it more user-friendly (e.g. don't expect the user to calculate `LinearMaxout.output_dim = Linear.output_dim / Maxout.num_pieces` manually).

Another option is to keep the `MLP` brick around, as a clean interface for models which just use a set of simple activations, and have a separate `DaisyChain` brick for models which use `Maxout` or other activations which change the output dimension.