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


Have you tried to change the `random_state` to other values. Is pre-training always beneficial?

I would add a remark that pre-training can be beneficial when the training set is small which is the case here but is generally considered useless when the (labeled) training set grows large.