Fixes to documentation

I've fixed up a bunch of the issues with the documentation and Sphinx, with the following notes:

* There are still a handful of errors of the type `ERROR: Unknown target name:` because some of the code uses variable names that have a trailing underscore, which Sphinx attempts to interpret as a link.
* There are about a thousand warnings (`references unknown document` and `reference to nonexisting document`) that are due to numpydoc and its scraping of class members.  It's annoying, but ignorable.
* numpydoc is supposed to nicely handle properties in attribute lists, but it's failing for reasons I do not understand.  This needs further investigation.
* Documentation for `sunpy.gui` is not working properly, and I've had to brute-force prevent Sphinx from trying to import part of it.  Part of the problem is due to the way that code is executed upon import.
* The error `ImportError: numpy.core.multiarray failed to import` occurs when Sphinx tries to import `Crotate` (presumably because it does not have access to NumPy), and I'm not sure whether there's any way to prevent that error from cropping up (e.g., using mock modules) because `Crotate` is compiled.  For the time being, it is also ignorable.