Use a registry of known formatter classes.  This has the potential advantage of enabling user-defined formatters.  astropy.units.format.__init__ should still import all the built-in formatters to ensure they are added to the registry, so this is a minimal change.
Allow unit format names to be case-insensitive (normalizing to lowercase) and include a type check in case the format is not a valid string.
Ensure no Python modules under astropy/utils/compat are excluded from the source distribution
Added a changelog mention of this, though it won't be of interest to most users (packagers maybe though)
Updates to the old PyFITS FAQ to better serve as an 'astropy.io.fits' FAQ, as more people are starting out using Astropy.  Removed a few questions mostly related to installation that are already covered generally by the Astropy installation docs.
Also make some slight updates to the docs on warnings
Oops--None should still be an allowed input as the default
Move table.Row class into its own submodule table/row.py
Merge pull request #2872 from taldcroft/table-row

Move table.Row class into its own submodule table/row.py
Generate API docs for some missing sub-modules in astropy.tools`
Merge pull request #2873 from cdeil/utils_docs

Generate API docs for some missing sub-modules in astropy.utils
This reworks how the correct 'stdout' stream to use by default
for functions like color_print, ProgressBar, etc. is obtained.

Usually we just want to use sys.stdout, but on Windows that does
not work for color.  Previously there were some hacks to instead
use IPython's stdio stream on Windows since it actually wraps
pyreadline and *does* handle colors.  However, by *always* using
IPython's stdout, functions that assume we're using sys.stdout
do not actually write properly to sys.stdout when sys.stdout is
*changed* (e.g. replaced with a log file).

This instead uses sys.stdout by default in *most* cases.  But when
sys.stdout is set to a TTY (the only context where we probably want
to keep colors) *then* it switches over to using IPython's stdout.

An alternative might be to create a wrapper object that handles
this more transparently, but for now this appears to work.
Apparently the label 'warnings' was already taken (I think it shouldn't be but I'm not going to try to track it down right now).
Fix incorrect object reference
This enhances the test_path open to the TestRunner to allow the path to be any .py or .rst file (as before) *or* any directory which might contain tests (including doctests under docs/)
Add changelog entries for both issues fixed by this PR. [skip ci]
Merge pull request #2878 from embray/issue-2878

Table.pprint() header ignores stdout redirection
Merge pull request #2852 from embray/units/formatter-registry

Add a silly automatic registry of known formatter classes
add latex_inline unit format
add CHANGES entry