GSoC 2014: Standard Extreme Learning Machines

Finished implementing the standard extreme learning machines (ELMs). I am getting the following results with 550 hidden neurons against the digits datasets,

Training accuracy using the logistic activation function: 0.999444
Training accuracy using the tanh activation function: 1.000000

Fortunately, this algorithm is much easier to implement and debug than multi-layer perceptron :).
I will push a test file soon.

@ogrisel , @larsmans
@ogrisel the problem is in the internal multiplications made by ridge regression. For example, calling `ridge_regression` would invoke these two lines
```python
103. A = safe_sparse_dot(X.T, X, dense_output=True)
104. Xy = safe_sparse_dot(X.T, y, dense_output=True)
```
These multiplications makes it unsuitable for the recursive update algorithm of `ELM`. Like you said, it is best to factor out these multiplications from the statements that solve the `Ax=B` equation. +1 to a PR that allows the user to choose the content of `A` and `B` in `ridge_regression` when solving for `Ax=B`. :-)
Thanks.