Fixed #21587 -- Raised deprecation warnings correctly.

Thank-you for the explanation. I'd guess the warning it `__init__` is probably not needed for most use cases, but it doesn't hurt and is only for 1 version. We can keep all the `permanent=True` stuff to silence warnings for now and remove them in 1.9. I'll add a TODO so we don't forget.