[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)

Here, the usual standard is to write, instead of "str", "{'ovr', 'multinomial'}". I think that I prefer that latter option.