[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
Unfortunately this is actually triggering a bug under Python 3.4 on my box, for instance when I run the `plot_rbm_logistic_classification.py` but I cannot really understand why. Can you try to reproduce it?

```
Traceback (most recent call last):
  File "examples/plot_rbm_logistic_classification.py", line 39, in <module>
    from sklearn import linear_model, datasets, metrics
  File "/Users/ogrisel/code/scikit-learn/sklearn/linear_model/__init__.py", line 12, in <module>
    from .base import LinearRegression
  File "/Users/ogrisel/code/scikit-learn/sklearn/linear_model/base.py", line 28, in <module>
    from ..utils import as_float_array, atleast2d_or_csr, safe_asarray
  File "/Users/ogrisel/code/scikit-learn/sklearn/utils/__init__.py", line 11, in <module>
    from .validation import (as_float_array, check_arrays, safe_asarray,
  File "/Users/ogrisel/code/scikit-learn/sklearn/utils/validation.py", line 17, in <module>
    from .fixes import safe_copy
  File "/Users/ogrisel/code/scikit-learn/sklearn/utils/fixes.py", line 54, in <module>
    pickle.loads(pickle.dumps(expit))
  File "/Users/ogrisel/venvs/py34/lib/python3.4/site-packages/numpy/core/__init__.py", line 61, in _ufunc_reduce
    return _ufunc_reconstruct, (whichmodule(func, name), name)
  File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/pickle.py", line 283, in whichmodule
    for module_name, module in sys.modules.items():
RuntimeError: dictionary changed size during iteration
```