[MRG] 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
This is test to check the correct working of a regressor that supports sample weights. Here you use it on a classifier. Better make it explicit and test both `ELMClassifier` and `ELMRegressor` in the right context:

```
diff --git a/sklearn/neural_network/tests/test_elm.py b/sklearn/neural_network/tests/test_elm.py
index c8fc35b..c9aed2f 100644
--- a/sklearn/neural_network/tests/test_elm.py
+++ b/sklearn/neural_network/tests/test_elm.py
@@ -119,17 +119,28 @@ def test_multioutput_regression():
         assert_greater(elm.score(X, y), 0.95)
 
 
-def test_non_uniform_weights_toy_edge_case_reg():
+def test_non_uniform_weights_toy_edge_case_regression():
     X = [[1, 0], [1, 0], [1, 0], [0, 1]]
     y = [0, 0, 1, 0]
     # ignore the first 2 training samples by setting their weight to 0
     sample_weight = [0, 0, 1, 1]
     for activation in ACTIVATION_TYPES:
-        elm = ELMClassifier()
+        elm = ELMRegressor()
         elm.fit(X, y, sample_weight=sample_weight)
         assert_greater(elm.predict([[1, 0]])[0], 0.5)
 
 
+def test_non_uniform_weights_toy_edge_case_classification():
+    X = [[1, 0], [1, 0], [1, 0], [0, 1]]
+    y = [0, 0, 1, 0]
+    # ignore the first 2 training samples by setting their weight to 0
+    sample_weight = [0, 0, 1, 1]
+    for activation in ACTIVATION_TYPES:
+        elm = ELMClassifier()
+        elm.fit(X, y, sample_weight=sample_weight)
+        assert_equal(elm.predict([[1, 0]])[0], 1)
+
+
 def test_overfitting():
     """Larger number of hidden neurons should increase training score."""
     X, y = classification_datasets['multi-class']
```