[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
`self.n_iter_` for SGD currently does not have the same meaning for LBFGS and SGD: this is source of confusion.

We should instead introduce a new variable (for instance `self.t_` to be consistent with `SGDClassifier`) for the learning rate schedule: the total number of samples that were used to train the model, irrespective of the fact that some samples might have been seen several times when training with several passes over a finite training set).

`self.n_iter_` on the other hand should always reflect the number of "epochs" that is the number of passes over the full training set. This attribute should not be set when the users calls the `partial_fit` method as we don't know the total size of the full training set in that case.