1579 cleanup

Don't forget that `deprecation_stream` can also be a `RaiseErrorStream` instance, which does not implement the full IO interface.  It only implements `puts` -- so in this case it would work properly, but I'd like for there to be a spec for that case as I consider it an implementation detail that this uses `puts` rather than another IO method like `print `or `write`.