Check for and prevent initialization of NDData with Quantity

Closes #2374, though admittedly in an unsatisfactory way.
Add changelog entry
Allow NDData and uncertainty to be set with Quantity
Include astropy-helpers in the tarball.
Update changelog, move entry to New Features
add utilities for swapping or removing axes from a WCS
preserve metadata

don't need that velosys setting any more
added another utility for adding a stokes axis.  It's ridiculous, but
apparently it's needed for compliance with CASA's spectral axis
conventions

docstring fixes and import fix
__init__ and changelog updates
added two new utilities and some more docstrings.  The new utils come
from @ChrisBeaumont and @astrofrog

docstrings

more docstrings
make dropaxis a method on wcs (and drop its _ for consistency with
swapaxes, preferring numpy convention over pep8 here)

oops, forgot to save... I need to squash this one away...
SQUISH!
swapaxes is now a wcs method too
add reorient_celestial_first method and
refactor reorient_celestial_first to be a trivial one-liner (though I
assume the namespace magic at the top of the module works...)
Lots of small fixes together:
fix tests
fix call signatures for drop/swap
py3 compatibility: range -> list(range)
no need to arrayify inds
1 more py3 fix
move wcs_slice to a method on wcs (which could become __getitem__, and
now it has in this squashed commit!) but it needs tests before
merging!!!
fixed some ridculous bugs and added tests and added __getitem__
convenience
add_stokes_axis now uses wcs.sub
axis_type_names is now a method with tests.  We can remove it, but
default is to include
cleanup: remove unused imports and unnecessary variable

fix failing test
make axis_type_names a property & update tests accordingly
cleanup of docstrings and implementation of @astrofrog's suggestion to
allow slicing of fewer-than-all axes