Currently there is an inconsistency in set_params with respect to its behaviour of resetting self.
If called with None (no parameters), it does not reset, for any other parameter setting, it does.
This feels inconsistent, and it turns out to an unclear contract in composition, as is seen in the discussion in #467 (review).
So, should we remove the clause if params is None: return self in set_params?
FYI @SimonBlanke