Initial fix for issue 2555
Small modifications to enable keyword retrieval
Pass requested keywords as a string.
Allow multiple --key arguments
This provides a more reliable way to determine that we are definitely imported from an astropy source checkout, by checking for a file .astropy-root that would only ever possibly exist in this case.  This is inessential though and can be removed if people want to get rid of this extra top-level file.
Actually this is better; we can put the special .astropy-root file under static/ so that it's not cluttering up the actual root.  But this is good enough for the desired purposes.
Add an explanation to .astropy-root
If extension modules need to be recompiled, automatically try running build_ext --inplace rather than just failing to import--very convenient.  At some point this should be extended to work for any extension module (rather than just using the utils._compiler heuristic) but that could be a little trickier
Fixed support on Python 3, and got rid of .astropy-root per https://github.com/astropy/astropy-helpers/issues/107#issuecomment-64282919
Add Ellipse2D model
Add Ellipse2D model formula
Add test for Ellipse2D model
Add Ellipse2D example
Removed Ellipse2D __init__
Add changelog entry [skip ci]
Removed a few spectral density equivalencies which do not make sense.
Deprecate frames as positional arguments if data is passed separately
Added changelog entry [ci skip]
More fixes to frame specification in docs
Make cosmology distance functions act like ufuncs.

* Change FLRW.comoving_distance and FLRW.absorption_distance
  to handle input arrays with shape.  This automatically propogates
  through to the other distance functions in FLRW.
* Add unit tests for this functionality
* This starts to address #1816, but not completely.
* Closes #3177
* There seems to be a 1-2% performance penalty for distance calculations
  caused by this change.