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 
``dict(self.__dict__)`` should copy the dict ``self.__dict__`` -- if I dont copy I change self