Make IsotonicRegression pickleable

fixes https://github.com/scikit-learn/scikit-learn/issues/3666

implements ``__getstate__`` and ``__setstate__`` by removing the interpolation function and rebuilding it.

cc @amueller @jnothman 
thx for the explanation. But if `__getstate__` is called only during pickling, this should not matter right, since if we are rebuilding `self.__dict__` during unpickling in `__setstate__`. 

This is just a general knowledge question and it should not matter much.