mlp with pretraining

This extends the generic multi-layer perceptron  (mlp) https://github.com/scikit-learn/scikit-learn/pull/3204 with a pre-training capability.

An example file - called `mlp_with_pretraining.py` - is added to show how pre-training  with an RBM is done and how it could improve mlp's performance on the digits dataset.

I got the following results, 
1) Testing accuracy of mlp without pretraining: 0.964
2) Testing accuracy of mlp with pretraining: 0.978


@ogrisel , in 7 out of 10 random states, MLP with pre-training performed better.

I changed the wording to state that, as the labeled training set grows larger the less pre-training is beneficial. Moreover, it can even result in a performance less than if the weights were randomly initialized.