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)
Oops--None should still be an allowed input as the default
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.
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
change class name to LatexInline
Merge pull request #2622 from zblz/inline-latex-units

Add "latex_inline" unit format representation with negative powers instead of fractions
Should fix the reference cycle found in #2877 by storing parent_table as a weakref.  This is achievable since most of the Column class seems to work find if there isn't a parent_table.  Also makes parent_table a property, allowing minimal changes elsewhere.
Add changelog entry [skip ci]
Merge pull request #2879 from embray/table/reference-cycle

Fix reference cycle between Table and Column
Merge pull request #2854 from embray/issue-2854

Astropy 0.4.1 on pypi is broken for python 2.6 due to missing _odict_py2 _fractions_py2 directories
correct 1 typo in docstring

@embray

[skip ci]