[WIP] Multinomial newtoncg

This adds newton-cg solver to the linear_model.LogisticRegression class when multi_class="multinomial". Benchmarks on a few sparse datasets against L-BFGS solver are included below. Convergence times tended to be slightly lower for newton-cg and the scores were pretty much identical on these datasets.

Benchmark on 20NewsGroup dataset (11314 x 130107 sparse matrix):

![20news_bench](https://cloud.githubusercontent.com/assets/4610553/4179948/d35bf1d0-36dd-11e4-8bb5-b02299024725.jpeg)

Benchmark on Brown Corpus using TFIDF feature extraction (335 x 42453 sparse matrix):

![brown_bench](https://cloud.githubusercontent.com/assets/4610553/4179957/57b56b32-36de-11e4-93d9-70ba5f551238.jpeg)

Benchmark on Movie Review Corpus using TFIDF feature extraction (1340 x 39659 sparse matrix)

![moviereview_bench](https://cloud.githubusercontent.com/assets/4610553/4179803/13e0a806-36d7-11e4-9775-22426e48189a.jpeg)

Benchmark on Reuters Corpus using TFIDF feature extraction (7227 x 30916 sparse matrix)

![reuters_bench](https://cloud.githubusercontent.com/assets/4610553/4180034/40167f08-36e2-11e4-907f-90f7bbe29b7e.jpeg)


I agree that this functions should be tested as errors are quite likely. I actually implemented a hessian matrix function locally and used it to test vector products from hessp. I was able to match the results from hessp with computing the hessian and then multiplying by a vector. We can add that to the test cases if desired. Of course there is a chance an error occurs in the implementation of the hessian but having two implementations arriving at the same result should give some confidence.