Part of #11992.
These were all the things that seemed pretty straight-forward. It's actually a bit bulky but should still be easy to review, hopefully.
* EHN add check_inverse in FunctionTransformer
* Add whats new entry and short narrative doc
* Sparse support
* better handle sparse data
* Address andreas comments
* PEP8
* Absolute tolerance default
* DOC fix docstring
* Remove random state and make check_inverse deterministic
* FIX remove random_state from init
* PEP8
* DOC motivation for the inverse
* make check_inverse=True default with a warning
* PEP8
* FIX get back X from check_array
* Andread comments
* Update whats new
* remove blank line
* joel s comments
* no check if one of forward or inverse not provided
* DOC fixes and example of filterwarnings
* DOC fix warningfiltering
* DOC fix merge error git
* we do not transform y
* more
* added Deprecation Warning to transform() to remove Y parameter
* more
* ENH ensure FunctionTransformer's transform/inverse_transform doesn't permit y
* Undo changes to pls_. It will be done in a separate PR (see #9160)
* flake8
* Update whatsnew
* Fully undo PLS changes
* use less nose.tools import to simplify future transition to activly developing test suites/runners
* assert_equal -> assert_array_equal in test_feature_hasher_pairs_with_string_values
and one missed ImportError that should be replaced with AttributeError
* test for py2.6 compat with except AttributeError
* fix importing of SkipTest
* force using nose in python2.6 for now
* there was no assert_dict_equal in py2.6. but we can use assert_equal
although failed test will look a little bit ugly
* remove nose imports from doc/datasets
* copyedit doc
* give the module an underscore (we should do this to all private modules...)
* use public import path in test
* change all logs to log1p to prevent warning in test and because it's
genuinely useful for frequency data
* what's new