ENH: use lgamma function from John D. Cook

Conflicts:
	sklearn/metrics/cluster/expected_mutual_info_fast.c
	sklearn/utils/lgamma.cpp
	sklearn/utils/lgamma.pyx
	sklearn/utils/setup.py
Merge branch 'master' into lgamma_port

Conflicts:
	sklearn/metrics/cluster/expected_mutual_info_fast.pyx
DOC document gamma in chi2_kernel.
update year in copyright notices
Fresh fixes of grammar errors
Grammar fixes
Changed minus sign to plus.
Merge pull request #1578 from zaxtax/elastic_documentation

Elastic documentation
TST add common test to check if estimators overwrite their init params
ENH use only a few samples in test.
FIX in tree and ensemble: don't overwrite random state in fit.
FIX don't overwrite random_state in fit in EllipticEnvelope
FIX don't modify random_state in clustering algorithms.
ENH make code more clear: MiniBatchKMeans only uses random_state in first run of partial_fit.
FIX in ward: don't overwrite n_components.
FIX remaining parameter issues in GradientBoosting
TST took the safty off the tests ;)
Merge pull request #1582 from ApproximateIdentity/doc-n_jobs-parallel

Changed minus sign to plus.
ENH we require a version of sphinx sufficient for "new" numpy_ext to work
FIX instead of appending numpy_doc to the list of extensions, directly add when creating the list