First round of relocating inline imports; this specifically focuses on modules that are already imported, in general, when you first start the Python interpreter. So in most cases there's not much point in burying them in function calls because those modules are guaranteed to always be imported to begin with.
Phase 2: This moves inline imports of any standard library modules that are guaranteed to be imported during 'import astropy' regardless, and don't in general make sense to have as inline imports.  Numpy is included in this as well, though there are a few places where Numpy shouldn't be imported (such as in modules that might be imported at setup-time when Numpy might not be installed). There are few other exceptions too, but not many.
Updated a couple modules to be just importable enough on Python 3 to display a new error message when trying to import astropy from within the source checkout with Python 3.
Removes some more unused imports that were found with pylint. I don't *think* this breaks anything but I'll be interested to see what the CI systems say