Multiple inputs for MLP

A few people have asked me how to use the new `CompositeLayer` functionality to feed multiple inputs to an MLP (e.g. @axeldavy).

This wasn't as straightforward as it should have been because the `MLP` class doesn't allow `input_source` to be passed (it is hardcoded to be `'features'` in the `Model` base class). Also, the (very badly named) `VectorSpacesDataset` was very outdated, calling some methods that don't exist anymore (e.g. `Space.validate`), and not implementing other methods that were required by the `FiniteDatasetIterator` (`get_data_specs` and `get_num_examples`) or the SGD algorithm (`return_tuple` argument to `iterator` method).

This PR should allow `input_source` to be passed to an MLP, and make the `VectorSpacesDataset` functional again (enough for basic use at least). I added a unit test as well.
Personally, I would just get rid of all of them. I never paid much attention to the `__maintainer__` label, because I'm never sure it's up to date (this file being a good example). Instead I just look at the history and blame of the file to get an idea who to talk to, or else I just e-mail `pylearn-dev`. Ian recently updated a bunch of files to say
```
__maintainer__ = "LISA Lab"
__email__ = "pylearn-dev@googlegroups"
```
which I think shows that most labels are a bit redundant; license, pylearn-dev and copyright can be in a README file, and the authors/maintainers are all in the Git history and in a file like the one you proposed (which can be updated much more easily).