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

@MechCoder, where np.matrix (or scipy.sparse matrices) may possibly be used, `np.multiply` is more explicit that it is not a matrix multiplication. But yes, this codebase assumes that `*` is elementwise, and `safe_sparse_dot` or `np.dot` are employed otherwise.