Tentative fix for #2262.

__new__() and __setitem__() in Latitude (resp. Longitude) now check that
the input argument is not a Longitude (resp. Latitude), in which case
a TypeError is raised.
Improve error message in wcs.sub

We should get a TypeError rather, rather than a ValueError when passing
a single string to `wcs.sub`.
Added a couple more tests for the fix for #2262.
Updated the Changelog with info about changes introduced by #2461.
Merge pull request #2462 from mdboom/wcs/sub-error-message

Improve error message in wcs.sub
Upgrade to wcslib-4.23

Fix #2361, #2341.

Also fixes a bug where the values in some WCS headers would be treated
as integers when they should be floats.
fixed (very) small typo
Follup to #2463 which fixes a regression I noticed only Python 2.7.3 down to 2.7.0.  This provides a slightly reworked fix to single out StringIO.StringIO for special treatment and leave writing to interfaces that support the modern buffer interface.
Merge pull request #2471 from cbonnett/patch-1

fixed (very) small typo
Merge pull request #2470 from embray/issue-2463-2

Follup to #2463...
Merge pull request #2468 from mdboom/wcs/upgrade-4.23

Upgrade to wcslib-4.23
Merge pull request #2461 from bluescarni/bugfix-for-issue-2262

Tentative fix for #2262.
Added APE5 API tests
Added initial files for representation classes
Implement BaseRepresentation and 3 inherited Representations.

Implemented CartesianRepresentation, SphericalRepresentation and CylindricalRepresentation.
Implemented transformations between the three Representations by to_cartesian and from_cartesian methods.

Contains contributions by @astrofrog.
Added example of creating a Distance object from a Distance object.
Added initial tests for SphericalRepresentation
Added tests for SphericalRepresentation
Added tests for CartesianRepresentation
Added test for cartesian to/from spherical transformation