[MRG+2] Multinomial Logistic Regression

- [x] Refactor code to let multinomial to be an option.
- [x] Test with further data, (e.g make blobs)
- [x] Try speeding up

Benchmarks for the haxby dataset.

When X is dense and across 9 classes (972, 577) (removing most of the zero features)
![haxby_dense](https://cloud.githubusercontent.com/assets/1867024/3839745/f81b1b0e-1e14-11e4-8bc8-db76b0f37045.png)

When X is sparse and acroos 9 classes (972, 163839)
![haxby_sparse_complete](https://cloud.githubusercontent.com/assets/1867024/3839763/1d378332-1e15-11e4-9753-2833450f9d6e.png)

Benchmarks for a synthetic dataset, using make_classification (50000, 2000)
![synthetic_multinomial](https://cloud.githubusercontent.com/assets/1867024/3841884/2df55e98-1e32-11e4-81e6-97c03f935de5.png)

![newsgroup_multinomial](https://cloud.githubusercontent.com/assets/1867024/3841982/0d4c29a0-1e33-11e4-9d0e-b3c1cef03d8a.png)

For the arcene data (100 * 10000)
![arcene](https://cloud.githubusercontent.com/assets/1867024/3842731/d5c99326-1e39-11e4-893a-782ef1652558.png)

It makes me nervous to have 'y' and 'Y' in the same scope: the variable names are almost the same and at first read I didn't see that they were 2 different variables. I think that I would prefer a more explicit name for 'Y'. Maybe 'Y_bin'?