[MRG] Generic multi layer perceptron

Currently I am implementing `layers_coef_` to allow for any number of hidden layers.

This pull request is to implement the generic Multi-layer perceptron as part of the GSoC 2014 proposal. 

The expected time to finish this pull request is June 15

The goal is to extend Multi-layer Perceptron to support more than one hidden layer and to support having a pre-training phase (initializing weights through Restricted Boltzmann Machines) and a fine-tuning phase; and write its documentation.

This directly follows from this pull-request: https://github.com/scikit-learn/scikit-learn/pull/2120
That's awesome - makes life much easier :). I noticed that `labelBinarizer` 
for multi-labeling will be deprecated by 0.17 since I get this warning.
```python
DeprecationWarning: Direct support for sequence of sequences
multilabel representation will be unavailable from version 0.17.
```
It seems I have to use `MultiLabelBinarizer` for multi-label instances. Wouldn't that add an unnecessary clutter in the code?

I believe that in this case I can't use `y_type_` to identify the type since I wouldn't know whether I should use `MultiLabelBinarizer` or `LabelBinarizer` until I check the instance type manually, right? 
Thanks