[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
There is a big difference in speed :(.
```python
a = np.ones((100))
sklearn_log_loss= wrapper(log_loss, a, a)
implemented_log_loss = wrapper(_log_loss, a, a)

timeit.timeit(sklearn_log_loss, number=1000)
Out[386]: 0.3650224346201867
timeit.timeit(implemented_log_loss , number=1000)
Out[387]: 0.052176478784531355

```