Use astropy.tests.helpers.catch_warnings instead of warnings.catch_warnings

We have a context manager that correctly and completely clears all warning state before catching warnings.  We should use that throughout the test suite so that it can be properly parallelized.

Also updates the testing documentation to point this out.

This is in response to me not being around to suggest this in #1174.